2014-02-10 3 views
0

Я изучаю AJAX прямо сейчас, используя jQuery. Когда я пытаюсь сделать эту систему регистрации не работает:Почему этот запрос почты jquery не работает?

$('#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

Покажите свой HTML. – Satpal

+1

Мое предположение - test.php выдает ошибку. –

+1

Вы посмотрели на инспектора трафика вашего браузера, чтобы проверить, что отправлено/получено? –

ответ

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: "[email protected]"}, function(data){ 
    $("#test").html(data); 
    alert(data); 
}); 

Если он не работает, и вы знаете, что вы написали, что линия JQuery правильно, вы, вероятно, есть проблемы в тесте .php. Если это так, добавьте переменные по одному за раз:

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

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

    $.post("test.php", {input: "register", name: username, pass: "dummyPass", mail: "[email protected]"}, 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!'); 
    }); 
}); 

А потом просто вытащить нужные данные из $ _POST в test.php:

<?php 

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

    // Do stuff here 

?> 
Смежные вопросы