使用Ajax和PHP输出数据

时间:2013-03-30 16:51:17

标签: php javascript ajax

我会将这个问题分解为段落以便于参考。

  1. 我有一个使用Ajax调用php文件的脚本;按下按钮后执行脚本。

  2. PHP文件包含一个简单的代码,该代码加上带有1的数字。

    <?php 
    $response = $response + 1;
    echo $response;
    ?>
    
  3. 但是,多次按下按钮时会出现问题。我做了一些研究,我可以得出结论,我所做的简单PHP脚本有问题,或者每次重新加载时代码只执行一次。

  4. 我读了一篇文章,解释了很多使用Javascript的工作,如果我想在同一个脚本中多次执行Ajax命令,但我没有看到它在多次执行时无法执行多次的原因按下按钮。

    问题:每次按下按钮时,PHP文件“post.php”是否都会被执行?它与我的PHP文件有关吗? 每次按下按钮,如何将脚本加上数字加1?是因为我需要一些额外的Javascript才能做到这一点?

  5. 脚本的其余部分在这里:

     <head>
            <script>
            function loadXMLDoc()
            {
            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                }
              }
            xmlhttp.open("POST","post.php",true);
            xmlhttp.send();
            }
        </script>
    
    </head>
    <body>
        <p>This button will execute an Ajax function</p> 
        <button type="button" onclick="loadXMLDoc()">Press here!</button>
        <div id="myDiv"></div>
        <script type="text/javascript" src="http://www.parameter.dk/counter/5b0d9873158158e08cad4c71256eb27c"></script>
    </body>
    

    如果我在某些方面不够清楚,请选出段号,我会加深那一部分。

1 个答案:

答案 0 :(得分:1)

在你的代码中,$ response始终为1,因为默认情况下php没有状态。您可以通过在会话中保存响应来解决此问题。

session_start();
if (isset($_SESSION['response'])) {
    $_SESSION['response'] = $_SESSION['response'] + 1;
} else {
    $_SESSION['response'] = 1;
}
echo $_SESSION['response'];