ajax从客户端(js)向服务器(php)发送数据

时间:2015-03-19 18:10:25

标签: javascript jquery ajax

<html>
<head>
<script> src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js">
</script>
<script>
/*$(document).ready(function(){
$("p").click(function(){
     event.preventDefault() 
    $.post("/response.php",
    {
      name: "Donald Duck",
      city: "Duckburg"
    },
   );
});
 });*/
 $(document).ready(function(){
  $("p").click(function(){
      event.preventDefault();
      $.ajax({
        type: "POST",
        url: "/response.php",
        data: {name: "Donald Duck", city: "Duckburg"},
        cache: false,
        success: function(html){
            $(".make").html(html);
        } 
      });

   });
 });
 </script>

 </head>
 <body>

 <form action="http://localhost/response.php" />
 <p><input type="submit" value="Send an HTTP POST request to a page and   get the result back"></p>
</form>
</body>
</html>

嗨,我试着学习ajax从客户端(js,html)发送数据到服务器(php),我试过ajax。 post(),但它似乎像从服务器加载数据一样工作,那么如何使数据发送到服务器呢?

4 个答案:

答案 0 :(得分:1)

您正在获取未定义的值,因为标准表单提交在您的AJAX帖子之前执行。除了提交按钮之外,您的表单不包含输入,因此不会发送任何数据。您确实将AJAX设置为发布值,但永远不会有机会执行。

$("form").on("submit", function(event) {
    event.preventDefault();  // stop standard form submission

    var data = { name: "Donald Duck", city: "Duckburg" };

    $.post("/response.php", JSON.stringify(data),
    function(result) { });
    ...
});

您可能还需要handle json request in PHP

答案 1 :(得分:1)

实际上它不是发送数据功能有问题,它是服务器句柄部分有问题,我们不能简单地使用&#34; echo $ _POST [&#39; name&#39;]&#34;得到价值。但是如果我们将它插入到数据库中,它确实存在,即使&#34;未定义的名称&#34;警告仍然存在。 这是服务器处理程序部分

 <?php
 mysql_connect("localhost","root");
  mysql_select_db("PeerPrediction");
  $result_set=mysql_query("SELECT*FROM GuessOfNum");
  $num_messages=mysql_num_rows($result_set);


   $name=$_POST["name"];
   $guessnum=$_POST["guessnum"];
   $taskid=$_POST["taskid"];
   $effort=$_POST["effort"];

   $query=mysql_query("INSERT INTO GuessOfNum(name,guessNum,taskid,effort)values('$name','$guessnum','$taskid','$effort')");

   if($query){
      echo "Your comment has been sent";
      }
   else{
      echo "Error in sending your comment";
       }

    ?>

答案 2 :(得分:0)

尝试以这种方式使用$.ajax

$(document).ready(function(){
    $("button").click(function(){
        $.ajax({
            type: "POST",
            url: "/response.php",
            data: {name: "Donald Duck", city: "Duckburg"},
            success: function(html){
            } 
        });

    });
});

现在,在您的response.php中,您拥有以下值:$_POST['name']等于&#34;唐老鸭&#34; $_POST['city']等于&#34; Duckburg&#34;。

<强>更新 将您的html表单更改为:

<form id="form" />
    <p><input type="submit" value="Send an HTTP POST request to a page and   get the result back"></p>
</form>

然后尝试更改javascript函数:

$(document).ready(function(){
    $("#form").submit(function(){
        $.ajax({
            type: "POST",
            url: "/response.php",
            data: {name: "Donald Duck", city: "Duckburg"},
            success: function(html){
            } 
        });
      return false;

    });
});

答案 3 :(得分:0)

您更改脚本代码

<script> $(document).ready(function(){ $("input[type='submit']").click(function(){ $.ajax({ type:'GET', url:"http://localhost/response.php", data: "name=Donald Duck&city=Duckburg", success:function(data){ /*success data*/ }
}); }); }); </script>

你可以在php中使用echo $ _POST [&#39; city&#39;];和echo $ _POST [&#39; name&#39;];