PhP Script aufrufen mit JS
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzeigen
aufrufen
ausblenden
ausgiebig testen
beenden
bug
code
einzige fehler
ende
falsche bereich
funktion
ladezeit
login
platzhalter
show
status
test
url
weben
webseite
-
Hallo,
das hier ist wahrscheinlich der falsche Bereich für dieses Thema, aber die Anderen passen auch nicht so ganz.
Ich würde gern eine Webseite anzeigen lassen mit div 1 ausgeblendet und div 2 eingeblendet. Dann soll ein PhP Script ausgeführt werden und wenn das fertig durchgelaufen ist soll div1 ein und div2 ausgeblendet werden.
Ich habe schon ein wenig Nachgefragt und bin somit auf https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests gestoßen.
Das ganze habe ich mir auf so umgebaut:
function load(){ var xhr = new XMLHttpRequest(); xhr.open("GET", "./test.php", true); xhr.onload = function (e) { if (xhr.readyState === 4) { if (xhr.status === 200) { einblenden(); //Div 2 ein und 1 aus } else { console.error(xhr.statusText); } } }; xhr.onerror = function (e) { console.error(xhr.statusText); }; ausblenden(); //Div 1 ein und 2 aus } function einblenden(){ $("#2").show(); $("#1").hide(); } function ausblenden(){ $("#2").hide(); $("#1").show(); }
Allerdings wird hierbei nicht gewartet darauf, dass das PhP Script fertig gelaufen ist.
Wie setze ich das so um das wenn das Script beendet wird meine Funktion ausgeführt wird, aber die Website nicht auf das beenden dieser wartet?
Beitrag zuletzt geändert: 22.12.2017 19:39:20 von horstexplorer -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Kannst du das nicht leichter per JS lösen?
https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_toggle_hide_show So in etwa, hier muss man aber über einen Toggle Button erstmal klicken, sicher kann man dann einen Timer einbauen der nach x-sekunden das hiden für dich übernimmt. -
Es soll ja nach beenden eines PhP Scriptes toggeln. Das ganze soll aber nicht die Ladezeit der Website aufhalten.
-
Hmm... könntest du nicht am Ende des .php Scripts die JS Funktion aufrufen lassen?
Evlt hilft (document).ready(function()? https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_event_ready -
fussballturnier schrieb:
Hmm... könntest du nicht am Ende des .php Scripts die JS Funktion aufrufen lassen?
Evlt hilft (document).ready(function()? https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_event_ready
Daran habe ich nicht gedacht
Joa das würde Funktionieren, ist aber nicht so schön falls die PhP mal kaputt ist, oder weg. -
horstexplorer schrieb:
Mich verwundert, dass dieses Skript nicht auf PHP wartet. Auf welche Weise hast du das denn überprüft? Denn eigentlich sollte es warten, das hast du schon richtig programmiert.
Allerdings wird hierbei nicht gewartet darauf, dass das PhP Script fertig gelaufen ist.
Wie setze ich das so um das wenn das Script beendet wird meine Funktion ausgeführt wird, aber die Website nicht auf das beenden dieser wartet?
Was mir an der Stelle aber auffällt:horstexplorer schrieb:
Diese Beschreibung passt nicht zum Skript, dort blendest du die beiden Div's genau umgekehrt ein und aus. Das war doch hoffentlich nicht der einzige Fehler ...
Ich würde gern eine Webseite anzeigen lassen mit div 1 ausgeblendet und div 2 eingeblendet. Dann soll ein PhP Script ausgeführt werden und wenn das fertig durchgelaufen ist soll div1 ein und div2 ausgeblendet werden. -
Das ganze wurde gestern im Support- Chat gelöst.
Vielen Dank dafür nochmal
So funktioniert das ganze richtig:
function load(){ $("#loader").show(); $("#login").hide(); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { document.getElementById("Platzhalter").innerText = xhr.responseText; $("#loader").hide(); $("#login").show(); } } xhr.open("GET", "./test.php", true); xhr.send(); }
Somit waren nur einige Elemente im Code vertauscht und/oder vergessen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage