Concatinate json输出响应

时间:2015-08-20 13:06:00

标签: php json

我正在使用AJAX / php表单。

if (strlen($name) < 4) { // If length is less than 4 it will output JSON error.
    $output = json_encode(array('type' => 'error', 'text' => '<br /> - ' . _t('"Naam" field contains invalid value')));
    die($output);
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { //email validation
    $output = json_encode(array('type' => 'error', 'text' => '<br /> - ' . _t('"E-mail" field contains invalid value')));
    die($output);
}
if (strlen($subject) < 3) { //check emtpy message
    $output = json_encode(array('type' => 'error', 'text' => '<br /> - ' . _t('"Onderwerp" field contains invalid value')));
    die($output);
}
if (strlen($message) < 3) { //check emtpy message
    $output = json_encode(array('type' => 'error', 'text' => '<br /> - ' . _t('"Vraag" field contains invalid value')));
    die($output);
}

AJAX脚本:

$.post('contact_form', post_data, function (response) {
    if (response.type == 'error') { //load json data from server and output message     
        output = '<div class="error">' + response.text + '</div>';
    } else {
        output = '<div class="success">' + response.text + '</div>';
        //reset values in all input fields
        $("#contact_form  input[required=true], #contact_form textarea[required=true]").val('');
        $("#contact_form #contact_body").slideUp(); //hide form after success
    }
    $("#contact_form #contact_results").hide().html(output).slideDown();
}, 'json');

如果有任何错误,上面的代码将形成并输出。 我的问题是我只收到1个错误。我怎样才能收到json对象中的所有错误?

1 个答案:

答案 0 :(得分:0)

这样的事情会给出所有错误。它将每个错误都推送到一个数组中并返回整个数组,而不是在出现一个错误后退出

$output = array();

if (strlen($name) < 4) { // If length is less than 4 it will output JSON error.
    $output[] = array('type' => 'error', 'text' => '<br /> - ' . _t('"Naam" field contains invalid value'));
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { //email validation
    $output = array('type' => 'error', 'text' => '<br /> - ' . _t('"E-mail" field contains invalid value'));
}
if (strlen($subject) < 3) { //check emtpy message
    $output[] = (array('type' => 'error', 'text' => '<br /> - ' . _t('"Onderwerp" field contains invalid value'));
}
if (strlen($message) < 3) { //check emtpy message
    $output[] = array('type' => 'error', 'text' => '<br /> - ' . _t('"Vraag" field contains invalid value'));
}

if (count($output)) die(json_encode($output));

您还必须遍历这些错误并在JS中显示所有错误