$ .post功能似乎没有发布

时间:2014-04-22 17:48:50

标签: javascript php jquery ajax post

我是javascript和php的新手。我正在尝试编写一个javascript函数,将字符串发回服务器,以便我可以捕获它并将其保存在数据库中。它最终会发布从google.maps地理编码api获得的数据,但就目前而言,我只是试图让任何帖子上班。我已经能够使用html表单发布到服务器,但还没有成功使用javascript函数,我有一种预感,我错过了一些基本的东西。

我在我的Script.js文件中包含了jquery库:     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

然后我添加了这个函数,我刚从Script.js文件中的examples复制了这个函数:

<script>
function namepost(){
document.write("Tired of trying to debug this bloody thing");
$.post("test.php",{firstname:"John"});
}
</script>

出于测试目的,我创建了文件test.php,这里是代码:

<?php
require_once 'Script.js';
echo "<script>namepost()</script>";
$name = $_POST['firstname'];
print_r($_POST);
echo "Firstname is {$name}";

这是我运行代码时得到的输出:

Tired of trying to debug this bloody thingArray ( ) Firstname is

我的函数被调用,但似乎我没有发布firstname,因为$ _POST给了我一个空数组。我不知道为什么,而且我已经在这里待了好几个小时。我需要包含另一个文件来使用jquery $ .post函数吗?请帮助我保存余下的头发和理智!

2 个答案:

答案 0 :(得分:1)

jQuery $ .post将执行异步POST,因此除非您使用javascript处理结果,否则您的页面不会更新:

$.post("test.php", {firstname:"John"}, function(result){ alert(result) });

($ .post的第三个参数是一个在服务器响应后执行的函数。)

如果你想进行同步POST,你需要使用jQuery $ .ajax函数,如下所示:

   $.ajax({
      type: 'POST',
      url: "test.php",
      data: {firstname:"John"},
      success: function(result){ alert(result) },
      async:false
    });

答案 1 :(得分:0)

html:

<html>
<head>
<title>the title</title>
   <script type="text/javascript" 
   src="/jquery/jquery-1.3.2.min.js"></script>
   <script type="text/javascript" language="javascript">
  $(document).ready(function() {
      $("#driver").click(function(event){
          $.post( 
             "/jquery/result.php",
             { name: "Zara" },
             function(data) {
                $('#stage').html(data);
             }

          );
      });
   });
   </script>
</head>
<body>
   <p>Click on the button to load result.html file:</p>
   <div id="stage" style="background-color:blue;">
          STAGE
   </div>
   <input type="button" id="driver" value="Load Data" />
</body>
</html>

php:

<?php
if( $_REQUEST["name"] )
{
   $name = $_REQUEST['name'];
   echo "Welcome ". $name;
}
?>

更改值以匹配您的值。

http://www.tutorialspoint.com/jquery/ajax-jquery-post.htm