PHP-ben egy eseményre több javascript függvény hívása
Sziasztok! Pl. OnFocus eseményre szeretnék több javascript függvényt felsorolni PHP-ben.
Ezek a függvények további bonyolúltabb PHP kódokat hívnak POS vagy GET.
Szépen le is futnak sorjában Firefox alatt, ha me van kapcsolva a firebug.
Ha ki van kapcsolva, csak az első függvényt hajtja végre. Explorerben is csak az elsőt.
Ha közéjük teszek alert(1) stb... tehát így:
Akkor minden böngészőben végrehajtja az összes függvényt, firebug bekapcsolás nélül is.
Esetleg valami várakoztató függvényt kell az alert() helyére írni?
Mi ennek a normális megoldása, vagy szintaktikája?
■ ....
OnFocus=\"func1('parameterek', 'POS');
func2('parameterek', 'GET');
func3('parameterek', 'GET');\"
....
OnFocus=\"func1('parameterek', 'POS');
func2('parameterek', 'GET');
func3('parameterek', 'GET');\"
....
Ezek a függvények további bonyolúltabb PHP kódokat hívnak POS vagy GET.
Szépen le is futnak sorjában Firefox alatt, ha me van kapcsolva a firebug.
Ha ki van kapcsolva, csak az első függvényt hajtja végre. Explorerben is csak az elsőt.
Ha közéjük teszek alert(1) stb... tehát így:
....
OnFocus=\"func1('parameterek', 'POS');alert(1);
func2('parameterek', 'GET');alert(2);
func3('parameterek', 'GET');\"
....
OnFocus=\"func1('parameterek', 'POS');alert(1);
func2('parameterek', 'GET');alert(2);
func3('parameterek', 'GET');\"
....
Akkor minden böngészőben végrehajtja az összes függvényt, firebug bekapcsolás nélül is.
Esetleg valami várakoztató függvényt kell az alert() helyére írni?
Mi ennek a normális megoldása, vagy szintaktikája?
Bővebben
valasz
Ha csak GET-ek vannak a sorozatban (amúgy nekem 9 db. van) akkor is csak az elsőt hajtja végre kikapcsolt firebug-nál.
Ilyen egy függvényem:
abeRequest('parameterek','valami.php','GET','id_neve');
Az OnChange, OnKeyUp és OnFocus-ra is felsoroltam vagy 9-et.
XHR
valasz
var formErrors = new Array();
function makeRequest() {
http_request = false;
if(window.XMLHttpRequest){
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (err)
{
try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (err) {}
}
}
if (!http_request) {
alert('Nincs AJAX!');
}
return http_request;
}
var http = makeRequest();
function abeRequest(data, page, method, keret) {
var content = document.getElementById(keret);
makeRequest();
if(method == "GET") {
if(data == 'null') {
http.open("GET", page);
} else {
http.open("GET", page+"?"+data);
}
} else if(method == "POST") {
http.open("POST", page);
}
http.onreadystatechange = function() {
if (http.readyState < 4){
} else {
content.innerHTML = http.responseText;
}
}
if(method == "GET") {
http.send(' ');
} else if (method == "POST") {
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.send(data);
}
}
Tehát NEM
(Viszont jelentkezni fog egy új probléma... no de ennyire ne szaladjunk előre.)
valasz
Közben kifiléztem egy részt. Ezzel ki is próbálhatod, működik is, csak az eredeti helyén nem. Most keresgélem a különbséget....Nagyon köszönöm, hogy eddig is segítettél!
Az végleges kódban sok minden dolga van, tehát a Torol.php-be beletettem egy véletlengenerátoros várakozást.
Ha ezt a két filet létrehozod és elindítod a Proba.php-t, futnia kellene.
Amit nem értek, hogy miért csak a végén írja ki egyszerre és nem szépen sorba-sorba, ahogyan a várakorási idők letelnek. Valahogy az az érzésem, hogy a kordé megelőzi a szamarat.
Proba.php
<HTML lang="hu">
<HEAD> <TITLE>Proba</TITLE> </HEAD>
<title>Proba</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
<meta name="keywords" content="proba">
<meta name="author" lang="hu" content="ha5abe at http://www.proba.hu">
<meta name="robots" content="index, follow">
<meta name="identifier-url" content="http://www.proba.hu/index.php">
<meta name="revisit-after" content="30 days">
<meta name="description" content="oktato oldal">
<script type="text/javascript">
var http_request = false;
var formErrors = new Array();
function makeRequest() {
http_request = false;
if(window.XMLHttpRequest){
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (err)
{
try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (err) {}
}
}
if (!http_request) {
alert('Nincs AJAX!');
}
return http_request;
}
var http = makeRequest();
function abeRequest(data, page, method, keret, vido) {
//alert ("<data:>"+data+"<page:>"+ page+"<method:>"+method+"<keret:>"+keret+"<vido:>"+vido+"<>");
var content = document.getElementById(keret);
makeRequest(); // beindult az IE es a Mozilla is
if(method == "GET") {
if(data == 'null') {
http.open("GET", page, false);
} else {
http.open("GET", page+"?"+data, false);
}
} else if(method == "POST") {
http.open("POST", page, false);
}
http.onreadystatechange = function() {
if (http.readyState < 4){
} else {
content.innerHTML = http.responseText;
}
}
if(method == "GET") {
//http.send(null);
try {
http.send(' ');
}
catch (err) {}
} else if (method == "POST") {
http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.send(data);
}
}
</script>
</head>
<body>
<?php
echo "<table width=\"509\" border=\"0\">
<tr>
<td>Proba</td>
</tr>
<tr>
<td>
<form id=\"form1\" name=\"form1\">";
echo "<input type=\"button\" name=\"gomb\" id=\"gomb\" value=\"OK\"
onClick=\"abeRequest('torles','Torol.php', 'GET','szoveg1');
abeRequest('torles','Torol.php', 'GET','szoveg2');
abeRequest('torles','Torol.php', 'GET','szoveg3');
abeRequest('torles','Torol.php', 'GET','szoveg4');
abeRequest('torles','Torol.php', 'GET','szoveg5');
abeRequest('torles','Torol.php', 'GET','szoveg6');
abeRequest('torles','Torol.php', 'GET','szoveg7');
abeRequest('torles','Torol.php', 'GET','szoveg8');
abeRequest('torles','Torol.php', 'GET','szoveg9');
abeRequest('torles','Torol.php', 'GET','szoveg10');
abeRequest('torles','Torol.php', 'GET','szoveg11');
abeRequest('torles','Torol.php', 'GET','szoveg12');\">";
echo "<table border='1'>";
echo "<tr><td name='szoveg1' id='szoveg1'>----1-----</td></tr>";
echo "<tr><td name='szoveg2' id='szoveg2'>----2-----</td></tr>";
echo "<tr><td name='szoveg3' id='szoveg3'>----3-----</td></tr>";
echo "<tr><td name='szoveg4' id='szoveg4'>----4-----</td></tr>";
echo "<tr><td name='szoveg5' id='szoveg5'>----5-----</td></tr>";
echo "<tr><td name='szoveg6' id='szoveg6'>----6-----</td></tr>";
echo "<tr><td name='szoveg7' id='szoveg7'>----7-----</td></tr>";
echo "<tr><td name='szoveg8' id='szoveg8'>----8-----</td></tr>";
echo "<tr><td name='szoveg9' id='szoveg9'>----9-----</td></tr>";
echo "<tr><td name='szoveg10' id='szoveg10'>----10----</td></tr>";
echo "<tr><td name='szoveg11' id='szoveg11'>----11----</td></tr>";
echo "<tr><td name='szoveg12' id='szoveg12'>----12----</td></tr>";
echo "</form>
</td>
</tr>
</table>";
?>
</body>
</html>
Torol.php
header("Pragma: No-Cache");
header("Expires: Fri, 30 Oct 1998 10:10:10 GMT");
if(isset($_GET['torles'])){
//echo " ";
$n = rand(0, 10)*100000;
usleep($n);
echo "------" . $n . "------";
}