jQuery到PHP数据传输

jQuery到PHP数据传输,php,jquery,Php,Jquery,具有以下jQuery文件 $( document ).ready(function() { var urlform = "register/ajax"; $("#btnRegister").click( function() { $("#Register").submit( function() { return false; }); $.ajax({ url: url

具有以下jQuery文件

$( document ).ready(function() {
         var urlform = "register/ajax";
    $("#btnRegister").click( function() {
        $("#Register").submit( function() {
           return false;    
        });
        $.ajax({
            url: urlform,
            type: 'POST',
            dataType: 'json',
            async: true,
            data: $("#Register").serialize(),
            success: function (data) {
                $("#email").css("border-color", "green");
                $("#rCheck").text(data);
                console.log(data);
            },
            error: function (data) {
                $("#email").css("border-color", "red");
                $("#rCheck").text(data);
                console.log(data);
            }
        }); 
    });
});
在控制台日志中,我得到

Object {email_reg: Object, confirm_password_reg: Object}
    confirm_password_reg: Object
         notSame: "Passwords Doesn't Match"
    __proto__: Object
    email_reg: Object
        recordFound: "E-mail address already exists"
    __proto__: Object
__proto__: Object
有关更清晰的解释,请参见以下链接:

但是当使用$(“#rCheck”).text(数据)在div中传输数据时它只获取[object]

问题如何仅传输错误消息,如:

  • 密码不匹配
  • 电子邮件地址已存在
Json编码

    if (!$form->isValid()){
        // email is invalid; print the reasons
        $json= $form->getMessages();
        $response->setContent(\Zend\Json\Json::encode($json));
    }
    return $response;

$json在数组中是如何双关语的。

问题在于
数据
是一个对象,当传递到
时,text()
将打印其
.toString()
版本,即
[object object]

所以试试看

if (data) {
    var msgs = $.map(data, function (fieldObj, key) {
        return [$.map(fieldObj, function (msg, key) {
            return msg;
        })]
    });
    $('#abc').html(msgs.join('<br />'))
} else {
    //do something
}
if(数据){
变量msgs=$.map(数据,函数(字段对象,键){
返回[$.map(fieldObj,函数(msg,键){
返回味精;
})]
});
$('#abc').html(msgs.join('
')) }否则{ //做点什么 }
返回的数据是Javascript对象。您需要提取所需字段,如
数据。请确认\u password\u reg.notSame
。您可能应该更改JSON,以便更容易处理结果。将其设置为数组而不是对象,并将错误消息放在子数组中的一致属性中。问题是
数据
是一个对象,当传递到
时。text()
将打印其
.toString()
版本,即
[object object]
,因此请尝试
var msgs=$.map(数据、函数(key、fieldObj){return[$.map(fieldObj,function(key,msg){return msg;})]};$('#abc').html(msgs.join('
'))
也将
$(“#Register”).submit(function(){..})
移出单击处理程序