为什么这个jquery帖子请求不起作用?

时间:2014-02-10 19:49:22

标签: javascript php jquery ajax

我正在使用jQuery学习AJAX。 当我尝试建立这个注册系统时,它不起作用:

$('#submitr').click(function () {
    var username = $('#usernamefieldr').val();
    var password = $('#passwordfieldr').val();
    var email = $('#emailfieldr').val();
    alert("ERROR");
    $.post("test.php", {
        input: "register",
        name: username,
        pass: password,
        mail: email
    }, function (data) {
        $("#test").html(data);
        alert(data);
    }).error(function () {
        alert("ERROR");
    });
});

但是这个功能有效:

$.post("test.php", {input: "Ajax is working!"}, function(data){
    $("#test").html(data);
});

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的底层示例有效:

$.post("test.php", {input: "Ajax is working!"}, function(data){
    $("#test").html(data);
});

但你的上层没有。输入您知道将在test.php中正确验证的虚拟数据并运行它:

$.post("test.php", {input: "register", name: "dummyName", pass: "dummyPass", mail: "test@test.com"}, function(data){
    $("#test").html(data);
    alert(data);
});

如果它不起作用,并且您知道您已正确编写了JQuery这一行,那么您可能在test.php中遇到问题。如果是,则一次添加一个变量:

$('#submitr').click(function(){

  var username=$('#usernamefieldr').val();

  $.post("test.php", {input: "register", name: username, pass: "dummyPass", mail: "test@test.com"}, function(data){
     $("#test").html(data);
     alert(data);
  });

});

有用吗?如果是这样,添加下一个var ...依此类推。当它破裂时,你知道问题出在哪里。

您也可以尝试:

$('#submitr').click(function(){
    $.ajax({
       url:'test.php'
       type: 'post'
       data: $('#form').serialize();
    }).done(function(data){
       $('#test').html(data);
       alert(data);
    }).fail(function(){
       alert('Oh No!');
    });
});

然后只需从test.php中的$ _POST中提取所需的数据:

<?php

   $name  = $_POST['name'];
   $pass  = $_POST['pass'];
   $email = $_POST['email'];

   // Do stuff here

?>