Hallo,
ich hab ein kleines Ajax Script, das in der einen Version nur im Internet Explorer funktioniert und in der anderen Version nur im Firefox.
JavaScript:
HTML-Code (Version 1)
PHP-Code (Version 1)
HTML-Code (Version 2)
PHP-Code (Version 2)
Version 1:
Funktioniert nur im Internet Explorer.
Im Firefox wird der Wert von selectTwo ($_POST['selectTwo']) an die Formularauswertung nicht übergeben.
Version 2:
Funktioniert nur im Firefox.
Im Internet Explorer wird selectTwo nicht gefüllt.
Kann mir da jemand helfen? Ich hab schon einiges ausprobiert, sehe aber wahrscheinlich den Wald vor lauter Bäumen nicht mehr.
Danke.
ich hab ein kleines Ajax Script, das in der einen Version nur im Internet Explorer funktioniert und in der anderen Version nur im Firefox.
JavaScript:
Code:
function fillSelectTwo() {
req = getXMLRequester();
var jetzt = new Date();
var v = jetzt.getTime();
req.onreadystatechange = handleResponse;
id = document.getElementById('selectOne').value;
req.open('get', 'ajax.php?s='+ id +'&v='+ v, true);
req.send(null);
}
function handleResponse() {
if ((req.readyState == 4) && (req.status == 200)) {
document.getElementById('selectTwo').innerHTML = req.responseText;
}
}
function getXMLRequester( ){
var xmlHttp = false;
// try to create a new instance of the xmlhttprequest object
try{
// Internet Explorer
if( window.ActiveXObject ){
for( var i = 5; i; i-- ){
try{
// loading of a newer version of msxml dll (msxml3 - msxml5) failed
// use fallback solution
// old style msxml version independent, deprecated
if( i == 2 ){
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
}
// try to use the latest msxml dll
else{
xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
}
break;
}
catch( excNotLoadable ){
xmlHttp = false;
}
}
}
// Mozilla, Opera und Safari
else if( window.XMLHttpRequest ){
xmlHttp = new XMLHttpRequest();
}
}
// loading of xmlhttp object failed
catch( excNotLoadable ){
xmlHttp = false;
}
return xmlHttp ;
}
HTML-Code (Version 1)
HTML:
...
<table width="100%" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="50%">
<select name="selectOne" id="selectOne" onChange="fillSelectTwo()" size="15" style="width:190px;">
...
</select>
</td>
<td width="50%" align="right">
<div id="selectTwo"></div>
</td>
</tr>
</table>
...
PHP-Code (Version 1)
PHP:
<select size="15" style="width:190px;" name="selectTwoOut" id="selectTwoOut">
...
<?php
//Inhalte laden
$string = urldecode($_REQUEST['s']);
$string = htmlentities($string);
$result = $mysql->query("SELECT * FROM table WHERE wert = '".$string."'");
while($row = $mysql->fetch_array($result))
{
echo "<option value=\"".$row['id']."\">".utf8_encode($row['name'])."</option>\n";
}
?>
</select>
HTML-Code (Version 2)
HTML:
...
<table width="100%" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="50%">
<select name="selectOne" id="selectOne" onChange="fillSelectTwo()" size="15" style="width:190px;">
...
</select>
</td>
<td width="50%" align="right">
<select id="selectTwo" size="15" style="width:190px;" name="selectTwo">
...
</select>
</td>
</tr>
</table>
...
PHP-Code (Version 2)
PHP:
<?php
//Inhalte laden
$string = urldecode($_REQUEST['s']);
$string = htmlentities($string);
$result = $mysql->query("SELECT * FROM table WHERE wert = '".$string."'");
while($row = $mysql->fetch_array($result))
{
echo "<option value=\"".$row['id']."\">".utf8_encode($row['name'])."</option>\n";
}
?>
Version 1:
Funktioniert nur im Internet Explorer.
Im Firefox wird der Wert von selectTwo ($_POST['selectTwo']) an die Formularauswertung nicht übergeben.
Version 2:
Funktioniert nur im Firefox.
Im Internet Explorer wird selectTwo nicht gefüllt.
Kann mir da jemand helfen? Ich hab schon einiges ausprobiert, sehe aber wahrscheinlich den Wald vor lauter Bäumen nicht mehr.
Danke.
Zuletzt bearbeitet: