Seite 1 von 1

Hilfe: Ajax und der Internet Explorer?!?

Verfasst: 26.05.2006, 20:26
von markus_01
Hallo zusammen,

habe mich mal an Ajax versucht.
Hatte mir dazu mal einige Beispiele angesehen und bin darüber gestolppert.
In Firefox funktioniert das ganze prima. Es handelt sich um ein kleines Suchscript.
Ähnlich wie bei Google Suggest werden Ergebnisse bereits beim eintippen eingeblendet.
Ich versuche nun schon seit Tagen das auch im Internet Explorer zum laufen zu bekommen:

Kann mir jemand von Euch einen Tipp geben?
Poste mal den Code

HTML CODE:

Code: Alles auswählen

<html>
<link rel="sylesheet" href="stil.css" type="text/css">
<script language="JavaScript" src="suggest.js"></script>
<script language="JavaScript">
  window.onkeyup = sndReq;
</script>
<body>
<br>
<form name = "f1"><span id="name">
Geben Sie den Nachnamen ein&#58;<br>
<input name="name" action="suggest.php" type="text" size="30"></span>
<span id="antwort"></span>
</form>
</body>
</html>

das zugehörige JavaScript:

Code: Alles auswählen

function sndReq&#40;&#41;
&#123;
  if&#40;document.f1.name.value !=""&#41;
  &#123;
	resObjekt.open&#40;'get', 'suggest.php?name=' + escape&#40;document.f1.name.value.toLowerCase&#40;&#41;&#41;,true&#41;;
	resObjekt.onreadystatechange = handleResponse;
	resObjekt.send&#40;null&#41;;
  &#125;
  else
  &#123;
	document.getElementById&#40;"antwort"&#41;.style.visibility = "hidden";
  &#125;
&#125;

function handleResponse&#40;&#41;
&#123;
  document.getElementById&#40;"antwort"&#41;.style.visibility = "visible";
  if&#40;resObjekt.readyState == 4&#41;
  &#123;
	document.getElementById&#40;"antwort"&#41;.innerHTML = resObjekt.responseText;
  &#125;
&#125;
resObjekt=erzHttpRequestObject&#40;&#41;;
function uebernehme&#40;&#41;
&#123;
  document.f1.name.value = document.f1.vorschlag.value;
&#125;

Die PHP Datei:

Code: Alles auswählen

<?
$host = "localhost";
$user = "muster";
$password = "musterpasswort";
$dbname ="musterdb";
$tabelle = "adressen";

$text = '<select name="vorschlag" size="10" onClick="uebernehme&#40;&#41;">';
$dbverbindung = mysql_connect &#40;$host, $user, $password&#41;;
$dbanfrage = "SELECT * from $tabelle ORDER BY 'id' ASC";
$result = mysql_db_query&#40;$dbname, $dbanfrage, $dbverbindung&#41;;
while &#40;$ausgabe = mysql_fetch_array &#40;$result&#41;&#41; &#123;
  $trefferpos = strpos&#40;strtolower&#40;$ausgabe&#91;'name'&#93;&#41;.$_GET&#91;'name'&#93;&#41;;
  $if&#40;&#40;$trefferpos == 0&#41; && &#40;is_integer&#40;$trefferpos&#41;&#41;&#41; &#123;
	$text .= "<option>".$ausgabe&#91;'name'&#93;. ", " .
	  $ausgabe&#91;'vname'&#93; . "&#58; " .
	  $ausgabe&#91;'vorwahl'&#93; . "/" . $ausgabe&#91;'nr'&#93;.  "</option>";
  &#125;
&#125;
mysql_close &#40;$dbverbindung&#41;;
$text .= '</select>';
echo $text;
?>

Ich bedanke mich bei Euch.

Viele Grüße
Markus

Verfasst:
von

Re: Hilfe: Ajax und der Internet Explorer?!?

Verfasst: 27.05.2006, 11:04
von haha
markus_01 hat geschrieben:Ich versuche nun schon seit Tagen das auch im Internet Explorer zum laufen zu bekommen:

Kann mir jemand von Euch einen Tipp geben?
Javascript-Fehlermeldungen im IE einschalten.
HTML CODE:
[…]
window.onkeyup = sndReq;
Ich möchte meinen, dass es sinniger wäre, nur bei jeder Änderung im betreffenden Eingabefeld loszulegen anstatt bei jedem einzelnen Tastendruck im ganzen Fenster.
das zugehörige JavaScript:
[…]
resObjekt=erzHttpRequestObject();
So ganz ohne Definition von erzHttpRequestObject() ist es eigentlich ein Wunder, dass das Skript überhaupt funktioniert. Eine in alle Browser eingebaute Funktion ist das meines Wissens nach jedenfalls nicht.

Verfasst: 27.05.2006, 11:30
von Airport1
Tipp: zu Ajax gibts n gutes Buch von Addison Wesley (von Gunnar Hamperl oder so aehnlich), im WWW findest Du hingegen statt guten UND DURCHDACHTEN Beispielen (genauso wie bei PHP) wieder mal haufenweise Gefrickel, wie immer ;)