2017-01-01 78 views
0

我想在我的HTML页面上有一个简单的按钮,如果右键单击它,点击激活每次我的PHP脚本。 我试着用这个代码,而无需为那一刻的任何积极的结果:PHP验证按钮

//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> 

我的PHP代码的一部分:

echo "$result"; 
+0

这是有点不清楚你期望什么?你也没有对你的ajax调用做任何事情。 – kabanus

回答

1

你的代码是什么都不做与阿贾克斯的结果。我建议以here作为参考。缺失的最重要的东西是:

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

其中“demo”是您要加载Ajax结果的元素的Id。否则,结果将不会发生。

编辑

让我们来收拾你的代码,以便脚本和HTML是分开的:

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>

我会把<script>标签在你的HTML结束后,关闭主体,或将其包含在另一个文件的标题中。注意 - 由于没有传输敏感信息,所以我使用GET,脚本应该在HTML之后加载,因此最后需要一个带有Id的标签才能真正起作用。

+0

谢谢您的回答,并感谢您的建议。不过,我已将您的代码添加到我的代码中,但不幸的是没有任何反应 – frank

+0

发布您的html,我们将看到如何解决它。你需要一个'div'或者一些其他元素与'id = demo',就像我写的那样。我通常使用特殊的ID,比如“ajax”。 – kabanus

+0

完成(y):) – frank