我正在学习ajax,我正面临一个巨大的问题,我无法解决。我向php发送了一些变量,我在那里做了各种检查,并将字符串值返回给ajax。我可以将这些显示到textare
a(奇怪的结果立即消失)和输入字段。我想要做的就是将它们显示在div
中。任何人都可以解释我该怎么做,我将在下面留下一些注释代码。谢谢! P.S这是为用户显示注册表单错误,也许我可以使用不同的方法?随意提出一些建议。再次感谢!
php.php
<?php
//various checking here
echo json_encode(array(
'email_error' => $email_error,
'password_error' =>$password));
?>
HTML
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<body>
<form>
Your email:
<input type = "text" id = "email"><br>
Your password:
<input type = "password" id = "password1"><br>
Repeat password:
<input type = "password" id = "password2"><br>
<button type = "submit" id = "push_button">PushMe</button>
</form>
<div id ="email_errors"> </div> <--I want to put variable $email_errors here -->
<div id = "password_errors"> </div> <--I want to put variable $password_errors here -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" type = "text/javascript" ></script>
<script type="text/javascript" src="java_script.js"></script>
</body>
</html>
java_script.js
$(document).ready(function () {
$('#push_button').click(function() {
$.ajax({
url: "php.php",
type: "POST",
dataType: "json",
data: {
email: $("#email").val(),
password1: $("#password1").val(),
password2: $("#password2").val()
},
success: function(data) {
$("#email_errors").val(data.email_error); // i return these values (i tried html data type either
$("#password_errors").val(data.password_error);
}
});
});
})
答案 0 :(得分:0)
你只想在Divs里面显示字符串变量吗?如果你想要做的就是你必须使用&#39; html&#39;而不是&#39; val&#39;:
success: function(data) {
$("#email_errors").html(data.email_error);
$("#password_errors").html(data.password_error);
}
如果您的数据以JSON abject的形式返回,并且您想要显示整个对象,则可以执行以下操作:
success: function(data) {
$("#email_errors").html(JSON.stringify(data));
}
另外:(我不知道它是否在php中运行相同),你的$('#push_button').click()
可能会生成回发,从而删除了div内部HTML。尝试将return false
放在点击功能的末尾以停止发生回发:
$(document).ready(function(){
$('#push_button').click(function () {
$.ajax({
url: "php.php",
type: "POST",
dataType: "json",
data: {
email: $("#email").val(),
password1: $("#password1").val(),
password2: $("#password2").val()
},
success: function (data) {
$("#email_errors").html(data.email_error); // i return these values (i tried html data type either
$("#password_errors").html(data.password_error);
}
});
return false; // this should stop the postback
});
})