AJAX 将数据从客户端(JS)发送到服务器(PHP)

ajax send data from client(js) to server(php)

本文关键字:PHP 服务器 JS 数据 客户端 AJAX      更新时间:2023-09-26
<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((,但它似乎像从服务器加载数据一样工作,那么如何使其工作将数据发送到服务器?

您获得的值未定义,因为标准表单提交是在 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) { });
    ...
});

您可能还需要在 PHP 中处理 json 请求。

其实不是发送数据函数有问题,而是服务器句柄部分有问题,我们不能简单地用"echo $_POST['name']"来获取值。 但是,如果我们将其插入数据库,即使"未定义名称"警告仍然退出,它确实存在。这是服务器处理程序部分

 <?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";
       }
    ?>

更改脚本代码

<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['city'] 的变量; 和回显 $_POST['名称'];

尝试以这种方式使用$.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']等于"唐老鸭",$_POST['city']等于"鸭堡"。

更新:将您的 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;
    });
});