PHP无法捕获来自同一页面的AJAX的POST请求

时间:2018-03-30 14:33:08

标签: javascript php ajax

嗨,大家好,我的代码,我尝试了一切来解决它,但没有:

<?php 
   if(isset($_POST['sInput'])){
       $sInput=($_POST['sInput']);
       echo "$sInput";
    }else{
       echo '1';
    }
?>  


    <input type="button" class="button" onclick="Data(<?=$i?>)"/>


    <script type="text/javascript">
    function Data(sInput){
       $.ajax({
          type:"POST",
          data:{sInput:sInput},
          cache:"false",
         success: function() {
            alert('Done');
         }     
       });
    }
    </script>

我写的代码是按照这个顺序编写的,有可能它不起作用,因为PHP可能应该在js之后? 请注意,Post请求位于同一页面中,因此我没有指定URL,我必须说,当我单击按钮时,我会看到说出完成的JS alert

2 个答案:

答案 0 :(得分:3)

Ajax不是时间旅行。

这就是:

  1. 您要求在浏览器窗口中显示页面
  2. $_POST['sInput']未定义,因此您可以从else
  3. 中看到PHP的输出
  4. 您使用JavaScript制作第二个类似的请求,以便用JS处理
  5. $_POST['sInput']已定义,JavaScript收到if
  6. 的前半部分

    发出第二个请求不会更改历史记录。您正在查看的页面仍然是第一次请求的页面

    如果您想加载一个新页面,请不要使用Ajax。

    如果你想根据你收到Ajax请求的响应修改用户已经在查看的页面,那么你必须编写JavaScript(在你的成功函数中)来操作页面的DOM。

    success: function(response) {
            alert(response);
            $(document.body).append($("<div></div>").text(response));
    }     
    

答案 1 :(得分:0)

你应该为你的成功函数传递一个参数 这是来自php的数据  以及:

成功:功能(数据){  警报(数据) }