kostenloser Webspace werbefrei: lima-city


PhP Script aufrufen mit JS

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h***********r

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. fussballturnier

    fussballturnier hat kostenlosen Webspace.

    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.
  4. Autor dieses Themas

    h***********r

    Es soll ja nach beenden eines PhP Scriptes toggeln. Das ganze soll aber nicht die Ladezeit der Website aufhalten.
  5. fussballturnier

    fussballturnier hat kostenlosen Webspace.

    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
  6. Autor dieses Themas

    h***********r

    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 :biggrin:
    Joa das würde Funktionieren, ist aber nicht so schön falls die PhP mal kaputt ist, oder weg.
  7. fussballturnier

    fussballturnier hat kostenlosen Webspace.

    Wie meinen kaputt oder Weg?
    Du meinst einen Bug enthält?

    Ausgiebig testen :D Spaß
  8. horstexplorer schrieb:
    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?
    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.

    Was mir an der Stelle aber auffällt:
    horstexplorer schrieb:
    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.
    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 ...
  9. Autor dieses Themas

    h***********r

    Das ganze wurde gestern im Support- Chat gelöst.
    Vielen Dank dafür nochmal :prost::wave:

    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.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!