我正在使用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);
});
我做错了什么?
答案 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
?>