Ich nochmal.
Angenommen wir haben wieder sowas, diesmal leicht erweitert:
(ajax1.php)
(ajax2.php)
Einfachheitshalber angenommen, func1() führe eine SQL-Query mit der Adresse durch, func2() mit dem Nachnamen.
Das funktioniert alles noch.
Angenommen wir haben wieder sowas, diesmal leicht erweitert:
PHP-Code:
<script type="text/javascript">
createXHRObject = function()
{
...
}
dispatchToPHP = function (url,params)
{
var xmlhttp=createXHRObject();if(!xmlhttp){alert('Ajax not supported');return;}
xmlhttp.open('POST',url);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState!=4)return;
// 404 error abfangen hier weggelassen
try
{
new Function(xmlhttp.responseText)();
}
catch(E)
{
alert("RUNTIME ERROR / EXCEPTION: \n\n" + xmlhttp.responseText);
}
} //onreadystatechange()
xmlhttp.send(params);
}
prepareForCallback = function (phpfile, value)
{
// BEMERKUNG: function e() befindet sich in ajax.php !
var phpfilespec = phpfile + ".php";
var tbl = document.getElementById("maintable").value;
var e=window.encodeURIComponent||window.escape;
var params='tbl='+e(tbl)+'&value='+e(value);
dispatchToPHP(phpfilespec,params);
}
</script>
<div id="maintable">
<!-- ganz viel unwichtiger Code -->
</div>
<select id="bla" name="fasel" size="1" onChange=javascript:prepareForCallback("ajax1", this.value)>
<select id="bla2" name="blubb" size="1" onChange=javascript:prepareForCallback("ajax2", this.value)>
PHP-Code:
function func1()
{ ... }
PHP-Code:
function func2()
{ ... }
Das funktioniert alles noch.
Kommentar