页面第一次加载时,POST数据数组中将没有任何内容。运行后,我希望能够使用PHP代码中的POST数据中发送的任何变量,以便可以根据发送的参数查询数据库。我是否需要以某种方式重新加载页面?

PHP:

if(isset($_POST['boarder'])){
    $boarder = $_POST['boarder'];
    function boarderCheck($boarder){
        echo "<script type ='text/javascript'>alert('$boarder');</script>";
    }
    boarderCheck($boarder);
} else {
?>
  <script defer src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
  <script src="map.js"></script>
<?
};
?>


JavaScript(map.js)

$.ajax({
  type: "POST",
  data: {boarder: 'test'},
  dataType: 'text',
  success: function(response) {
    console.log(response);
  }
})

最佳答案

不,您不需要重新加载页面,尤其是因为您正在将异步请求(AJAX中的A)用于同一个URL。

请参见this phpfiddle演示示例(进行了一些修改)。单击运行-F9按钮,然后单击标有开发板的按钮以运行JavaScript(带有AJAX请求)。如果您open the browser console,则应该在“网络”选项卡中看到请求。主要的应该是对类似于code_41096139.php的页面的GET请求(数字可能会更改)。然后,当发出AJAX请求时,应该对同一页面有一个POST请求。展开该请求,您应该看到表单数据。

javascript - AJAX POST-如何在PHP中使用js变量-LMLPHP

除了添加按钮和单击处理程序之外,所做的唯一修改是添加了输出元素:

<div id="output"></div>


然后在AJAX请求的成功回调中,将该元素的文本设置为响应(除了对console.log()的调用):

 success: function(response) {
      $('#output').text('response: '+response);
      console.log(response);
 }

07-28 02:27
查看更多