首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX POST -如何在PHP中使用js变量

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

Stack Overflow用户
提问于 2017-03-06 19:48:40
回答 3查看 1.5K关注 0票数 0

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

PHP:

代码语言:javascript
复制
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)

代码语言:javascript
复制
$.ajax({
  type: "POST",
  data: {boarder: 'test'},
  dataType: 'text',
  success: function(response) {
    console.log(response);
  }
})
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-06 19:58:57

不,不需要重新加载页面,特别是在使用异步请求(AJAX中的A)到同一个URL的情况下。

请参阅这支小提琴演示您的示例(有几处修改)。单击Run - F9按钮,然后单击标记为Board的按钮来运行JavaScript (使用AJAX请求)。如果您是打开浏览器控制台,您应该在网络选项卡中看到请求。主请求应该是对像code_41096139.php这样的页面的GET请求(数字可能会改变)。然后,在发出AJAX请求时,应该会向同一页面发出POST请求。展开该请求,您将看到表单数据。

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

代码语言:javascript
复制
<div id="output"></div>

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

代码语言:javascript
复制
 success: function(response) {
      $('#output').text('response: '+response);
      console.log(response);
 }
票数 1
EN

Stack Overflow用户

发布于 2017-03-06 20:04:36

您可以通过使用Ajax请求来完成这一任务。您已经加载了JQuery库,并有发送Ajax请求的代码。

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

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

所以,你的问题的简单答案是-不,你不需要重新加载页面来完成这个任务。

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

票数 0
EN

Stack Overflow用户

发布于 2017-03-06 21:02:59

我认为它将帮助您发送请求和加载数据,如果您想重新加载页面,如果您也想搜索它的话。

代码语言:javascript
复制
   <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文件。

代码语言:javascript
复制
<?php 

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42634309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档