jQuery和AJAX,' post'数据到.PHP

时间:2014-05-27 14:08:43

标签: php jquery ajax post

我似乎无法获取123.php返回信息,以便在我使用jQuery-AJAX-thing的html文档中使用(更改名为div1的div的内容)。 我是JavaScript,PHP和HTML的新手;但是现在尝试了一些教程,似乎不能满足我的需求,所以真的可以提供一些帮助。

这是我的123.html应该使用AJAX-jQuery来调用我的123.php

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $.ajax({
        type: "POST",
        url: "/123.php",
        data:{id:"3", name:"John Doe"},
        success:function(response){
            alert('ok-'+data+'-'+respText+'-'+xhr);
            $("#div1").html(respText);
        },
        error: function (request, status, error) {
            alert(request.responseText);
        }                  
    });
});

</script>
</head>
<body>

以及123.php

<?php 
    $my_id = trim($_REQUEST['id']);
    $my_name = trim($_REQUEST['name']);

    $file = '123.txt';
    // Open the file to get existing content
    $current = file_get_contents($file);
    // Append to the file
    $current .= 'time:' . time() . ',id:' . $my_id . ',name:' . $my_name . "\n";
    // Write the contents back to the file
    file_put_contents($file, $current);

    echo 'received following: id: ' . $my_id . ' and name: ' . $my_name;
?>

123.txt只是为了查看php文件是否响应,而且确实如此,但只有当我通过时才会这样做     /123.php?id=7&name=Jane%20Doe 在其他地方使用&#39; post&#39;方法,没有响应(从JavaScript获取错误)

所以我猜它是AJAX / jQuery的结构; 对于上面列出的尝试,我在JavaScript控制台中收到错误&#34;未捕获错误:引用未定义&#34;

当我使用以下123.html代替(替换其他123.html)

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("#div1").post("/123.php",{id:"3",name:"John Doe"},function(data,status){alert("Data: " + data + "\nStatus: " + status);});
  });
});
</script>
</head>
<body>

<div id="div1">Text that should be changed</div>
<button>Press me, I'm a button</button>

</body>
</html>

我得到&#34; Uncaught TypeError:Undefined不是一个函数&#34;,我试图查找它,有些人写道它可以解决插入

(function ($) {
   $(document);
}(jQuery));

然而它没有(插入到最顶层,就在script-start-tag下面)

我似乎无法弄清楚我做错了什么,而且我真的对任何帮助和方向表示赞赏。

提前致谢

1 个答案:

答案 0 :(得分:1)

您的php没有返回JSON或XML,因此您无法获取数据。替换此

success:function(response){
            alert('ok-'+data+'-'+respText+'-'+xhr);
            $("#div1").html(respText);
        },

用这个

success:function(response){
            alert('ok-'+response);
            $("#div1").html(response);
        },