将json asnwer放入html标签中

时间:2014-12-04 20:24:52

标签: javascript php jquery html ajax

我正在学习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);
}
});

}); 
}) 

1 个答案:

答案 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
});

})