Ajax Request funktioniert nicht
burakko
- php
0 hotti0 hotti
0 Der Martin0 burakko
Sers Leute,
ich habe folgendes Problem:
Ich starte ein Ajax Request das wiederum per PHP Daten aus einer DB holt. Der Ajax Request funktioniert wenn er mit <body onload"..."> gestartet wird. Allerdings ändert sich das wenn der Ajax R. per onClick gestartet wird.
Es erscheint dann folgender Fehler: Notice: Undefined index: Juni in D:...
Hier das Ajax Skript.
function zeit()
{
var jahr = document.getElementById('filterJ').innerHTML;
var monat = document.getElementById('filterM').innerHTML;
ajax(); //Erzeugt ein Ajax Objekt.
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("eintrag").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","zeitkonto.php?jahr="+jahr+"&monat="+monat,true);
xmlhttp.send();
}
Hier das PHP Skript:
session_start();
error_reporting(E_ALL);
include 'isset.php';
include 'conn.php';
$jahr = mysql_real_escape_string($_GET['jahr']);
$monat = mysql_real_escape_string($_GET['monat']);
$monate = array("Januar"=>"01",
"Februar"=>"02",
"März"=>"03",
"April"=>"04",
"Mai"=>"05",
"Juni"=>"06",
"Juli"=>"07",
"August"=>"08",
"September"=>"09",
"Oktober"=>"10",
"November"=>"11",
"Dezember"=>"12");
$datum = date("Y-m-d",strtotime("01-".$monate[$monat]."-".$jahr));
ab hier ist es irrelevant.
Und hier der betreffende HTML Code:
...<body onLoad="zeit()">... <!-- Code dazwischen kann vernachlässigt werden.-->
<!-- Navi: Zeitkonto -->
<div id="zeitkontoHeader">Zeitkonto</div>
<a href="javascript:yearIn()"><div id="filterJ" class="zeitNavi"><?php echo date("Y",time()); ?></div></a>
<a href="javascript:monthIn()"><div id="filterM" class="zeitNavi"><?php include 'getmonth.php' ?></div></a>
<a href="javascript:zeit()"><div id="zz" class="zeitNavi">Eintragen</div></a>
<div id="soll">Soll 120h</div>
<div id="ist"></div>
<div id="month">
<ul>
<li onClick="fillM(this), zeit()" onMouseOver="over(this)" onMouseOut="out(this)">Januar</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">Februar</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">März</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">April</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">Mai</li>
<li onClick="fillM(this), zeit()" onMouseOver="over(this)" onMouseOut="out(this)">Juni</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">Juli</li>
<li onClick="fillM(this), zeit()" onMouseOver="over(this)" onMouseOut="out(this)">August</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">September</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">Oktober</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">November</li>
<li onClick="fillM(this)" onMouseOver="over(this)" onMouseOut="out(this)">Dezember</li>
</ul>
</div>
<div id="year">
<ul>
<li onClick="fillJ(this)" onMouseOver="over(this)" onMouseOut="out(this)">2008</li>
<li onClick="fillJ(this)" onMouseOver="over(this)" onMouseOut="out(this)">2009</li>
<li onClick="fillJ(this)" onMouseOver="over(this)" onMouseOut="out(this)">2010</li>
</ul>
</div>
<!-- Ende: Navi: Zeitkonto -->
<!-- Einträge -->
<div id="eintrag">
</div>
Ich hoffe ihr könnt mir helfen.
Vielen Dank im Voraus.
hi,
ich habe folgendes Problem:
Ich starte ein Ajax Request das wiederum per PHP Daten aus einer DB holt. Der Ajax Request funktioniert wenn er mit <body onload"..."> gestartet wird. Allerdings ändert sich das wenn der Ajax R. per onClick gestartet wird.
Es erscheint dann folgender Fehler: Notice: Undefined index: Juni in D:...
Wo wird denn die Fehlermeldung erzeugt? Im DOM oder auf dem Server?
Prüf das mal.
Hotti
hi,
Es erscheint dann folgender Fehler: Notice: Undefined index: Juni in D:...
Wo wird denn die Fehlermeldung erzeugt? Im DOM oder auf dem Server?
Natürlich kann das nur vom Server kommen, JS kennt das FS nicht und auch kein LW D:\
Also: Der Fehler liegt in Deiner Parameterliste. Der Delimiter ist das &, gleichermaßen hast Du den März als März wo auch ein & drin ist. Damit wird Deine Parameterliste inkonsistent.
Die Lösung des Problems heißt encodeURIComponent('März').
Generell:
key=encodeURIComponent(value)&key=ascii
Hotti
Hallo,
Es erscheint dann folgender Fehler: Notice: Undefined index: Juni in D:...
dein PHP-Script sucht also nach einem Array-Eintrag, den es nicht gibt.
Erster Ansatz: Sucht das Script wirklich nach dem Index 'Juni', oder sind da noch Whitespaces (Blanks, Zeilenumbrüche) mit drin? (Im HTML-Quelltext würdest du sie sehen, in der Browser-Ausgabe nicht.)
<a href="javascript:monthIn()"><div id="filterM" class="zeitNavi"><?php include 'getmonth.php' ?></div></a>
Hier hast du ungültigs HTML: Ein a-Element darf kein Blockelement (div) enthalten. Aber selbst wenn der Browser darüber großzügig hinwegsieht: Schau mal in den Quellcode - ich bin mir fast sicher, dass der Inhalt des div-Elements, auf den du später mit innerHTML zugreifst, noch Zeilenumbrüche enthält, oder womöglich eine UTF8-BOM. Die würdest du dann mit auslesen!
So long,
Martin
Also es war der fehlerhafte HTML-Code. Ich danke dir vielmals für den Tipp.
Gruß
Burak