jQuery到PHP的数据传输

时间:2014-08-19 06:19:55

标签: php jquery

拥有以下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”)。文本(数据); 在div中传输数据时,它只获得 [object Object]

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

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

Json Encode

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

这里$ json怎么可以在数组中双击。

1 个答案:

答案 0 :(得分:0)

问题是data是一个对象,当传递给.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
}