【问题标题】:AJAX POST - how to use a js variable in PHPAJAX POST - 如何在 PHP 中使用 js 变量
【发布时间】:2017-03-06 19:48:40
【问题描述】:

第一次加载页面时,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);
  }
})

【问题讨论】:

标签: javascript php jquery ajax http-post-vars


【解决方案1】:

不,您不需要重新加载页面,特别是因为您使用异步请求(AJAX 中的 A)到相同的 URL。

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

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

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

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

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

【讨论】:

    【解决方案2】:

    您可以通过使用 Ajax 请求来完成此操作。您已经加载了 JQuery 库并拥有发送 Ajax 请求的代码。

    也许您正在寻找如何在客户端脚本上使用 Ajax 响应或如何在客户端事件上向服务器发送 Ajax 请求。

    Ajax 是一种无需刷新页面即可与服务器通信的方式。

    因此,您的问题的简单答案是 - 不,您无需重新加载页面即可完成此操作。

    但是,如果您对重新加载页面感到满意(并且更舒服),您可以编写 JavaScript 来填充隐藏表单中的隐藏字段,并使用 JavaScript 以编程方式提交表单并在 $_POST 上处理 php 中的所有内容

    【讨论】:

      【解决方案3】:

      我认为它会帮助你发送请求和加载数据,如果你想重新加载页面,如果你也想搜索它

         <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>PHP, jQuery search demo</title>
      <link rel="stylesheet" type="text/css" href="my.css">
      
       <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
      <script type="text/javascript">
      $(document).ready(function () {
          $("input").keyup(function () {
              $('#results').html('');
              var searchString = $("#search_box").val();
              var data = 'search_text=' + searchString;
              if (searchString) {
                  $.ajax({
                      type: "POST",
                      url: 'search.php',
                      data: data,
                      dataType: 'text',
                      async: false,
                      cache: false,
                      success: function (result) {
                          $('#results').html(result);
                          //window.location.reload();
      
                      }
                  });
              }
          });
      });
       </script>
      
      </head>
      <body>
      <div id="container">
      <div style="margin:20px auto; text-align: center;">
      <form method="post" action="do_search.php">
          <input type="text" name="search" id="search_box" class='search_box'/>
          <input type="submit" value="Search" class="search_button"/><br/>
      </form>
      </div>
      <div>
      
      <div id="searchresults">Search results :</div>
      <ul id="results" class="update">
      </ul>
      
      </div>
      </div>
      
      </body>
      </html>
      

      然后创建一个php文件

      <?php 
      
       $searchquery = trim($_POST['search_text']); 
      echo $searchquery;
      ?>
      

      你可以添加更多你想要的代码,比如更新数据库,插入你想要的搜索

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 1970-01-01
        • 2017-07-10
        • 2016-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多