php - 使用 Ajax 和 PHP 进行数据输出

标签 php javascript ajax

我会将这个问题分成几段以便于引用。

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

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

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

  4. 我读过一篇文章,解释了如果我希望 Ajax 命令在同一个脚本中执行多次,则使用 Javascript 进行大量工作,但我不明白当按钮被按下。

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

脚本的其余部分在这里:

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

如果我在某些时候不够清楚,请挑出段落编号,我会加深该部分。

最佳答案

在您的代码中,$response 始终为 1,因为 php 默认情况下没有状态。您可以通过在 session 中保存响应来修复它。

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

关于php - 使用 Ajax 和 PHP 进行数据输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15721017/

相关文章:

javascript - 使用 webworker 的 chrome 多线程功能?

javascript - 显示部分统计的记录

php - 验证电话号码 php asterisk

php - php:onchange选项选择更新总计

php - 如何在刷新后保持图像按钮状态

javascript - react map 不是一个功能

javascript - 在 AJAX 调用中通过查询字符串发送时丢失 unicode 字符

php - session_start() : Write of lock failed

javascript - 叠加层未显示在数据生成的 d3 形状之上

javascript - 如何在第 n 个空格处将一个长字符串一分为二?