2017-01-01 2 views
0

Ich hätte gerne auf meiner HTML-Seite einen einfachen Button, der mir erlaubt, wenn man mit der rechten Maustaste klickt, klicken Sie jedes Mal auf mein PHP-Skript. Ich habe versucht, mit diesem Code, ohne positives Ergebnis für den Moment:PHP Validation Button

//My html code 
<!DOCTYPE html> 
<head> 
    <title><?php echo $pageTitle; ?></title> 
    <meta charset="UTF-16" /> 
    <link rel="stylesheet" type="text/css" media="all" href="css.css"> 
<style></style> 
</head> 
<body> 
    <main> 
     <button onclick="doTheFunction();">Run the script</button> 
      <script> 
      function doTheFunction(){ 
      xmlhttp = new XMLHttpRequest(); 
      xmlhttp.open("POST","script.php",true); 
      xmlhttp.send(); 
      xmlhttp.onreadystatechange = function() { 
       if (this.readyState == 4 && this.status == 200) { 
        document.getElementById("demo").innerHTML = this.responseText; 
       } 
       }; 
      } 
      } 
      </script> 

    </main> 
    <footer> 
     <?php echo $footer; ?> 
    </footer> 
</body> 

Ein Teil meines PHP-Code:

echo "$result"; 
+0

Es ist ein bisschen unklar, was Sie erwarten? Außerdem machst du nichts mit deinem Ajax-Anruf. – kabanus

Antwort

1

Ihr Code nichts mit dem Ergebnis von Ajax tut . Ich schlage vor, here als eine Referenz zu starten. Das Wichtigste, was Sie fehlt ist:

xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     document.getElementById("demo").innerHTML = this.responseText; 
    } 
    }; 

Wo „Demo“ ist die ID des Elements Sie in der Ajax führen laden möchten. Sonst wird nichts mit diesem Ergebnis passieren.

EDIT

Lassen Sie uns Ihren Code aufzuräumen so Scripts und HTML getrennt sind:

function doTheFunction(){ 
 
    xmlhttp = new XMLHttpRequest(); 
 
    //Set this before sending!! 
 
    xmlhttp.onreadystatechange = function() { 
 
     if (this.readyState == 4 && this.status == 200) { 
 
      document.getElementById("demo").innerHTML = this.responseText; 
 
     } 
 
    }; 
 
    } 
 
    //No reason to post 
 
    xmlhttp.open("GET","theme/generator/gensent.php",true); 
 
    xmlhttp.send(); 
 
}
<head> 
 
    <title><?php echo $pageTitle; ?></title> 
 
    <meta charset="UTF-16" /> 
 
    <link rel="stylesheet" type="text/css" media="all" href="css.css"> 
 
<style></style> 
 
</head> 
 
<body> 
 
    <main id="demo"> 
 
     <button onclick="doTheFunction();">Run the script</button> 
 
    </main> 
 
    <footer> 
 
     <?php echo $footer; ?> 
 
    </footer> 
 
</body>

Ich würde am Ende Ihrer html die <script> Tag setzen, nachdem Schließen Sie den Text oder fügen Sie ihn in den Header einer anderen Datei ein. Hinweis- Ich benutze GET, da keine sensiblen Informationen übertragen werden, das Skript sollte nach dem HTML-Code geladen werden - also am Ende, und schließlich brauchen Sie ein Tag mit der ID, damit das tatsächlich funktioniert.

+0

Vielen Dank für Ihre Antwort und danke für Ihren Rat. Ich habe jedoch meinen Code zu meinem hinzugefügt, aber leider passiert nichts. – frank

+0

Veröffentlichen Sie Ihren HTML-Code und wir werden sehen, wie Sie ihn beheben können. Du brauchst ein 'div' oder ein anderes Element mit 'id = demo', wie ich es geschrieben habe. Normalerweise verwende ich eine spezielle ID, wie "Ajax". – kabanus

+0

es ist fertig (y) :) – frank