php - 从 PHP 返回两个 2 json 对象

标签 php jquery ajax json jquery-mobile

我有一个包含两个输入的小型反馈表。我希望使用 JQuery 将错误消息附加到同一 div 中。如果只有一条错误消息,错误消息工作正常,但是当我返回两个 json 对象时,两条消息不会同时显示。是否可以向 JQuery 返回 2 个具有相同键的关联数组?如何将错误消息附加到同一个 div 中?除了错误消息的显示方式之外,一切正常。

注意:该程序是一个 JQuery 移动应用程序

PHP 代码

if (isset($_POST['submit'])) {

    $email = $_POST['email'];
    $feedback = $_POST['feedback'];
    $errors = array();

    if (filter_var($email, FILTER_VALIDATE_EMAIL) && !empty($email)) {
                 //Do something
    } else {
        $errors = "Invalid email.";
        echo json_encode(array("error" => "{$errors}"));

    }

    if (!empty($feedback)) {
                //Do something
    } else {
        $errors = "Feeback field can not be empty.";
        echo json_encode(array("error" => "{$errors}"));
    }

    if (empty($errors)) {
        //Database Insertion here
        echo json_encode(array("success" => "Feedback submission successful."));
    }
}  

JQuery 代码

$(function() {
    $('#contact_form').bind('submit', function(event) {
        event.preventDefault();
        $.post('includes/form.php', $(this).serialize(), function(data) {
            if (data.error) {

                $('.error').slideDown(100).html(data.error);

            } else {
                $('.error').hide();
                $('.success').slideDown(100).html(data.success);
            }

        }, "json");
    });
}); 

HTML 表单代码

         <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" id="contact_form" data-ajax="false">
            <label for="email">Email:</label>
            <input type="text" name="email" id="email" placeholder="Email">

            <label for="feedback">Feedback:</label>
            <textarea type="text" name="feedback" id="feedback" placeholder="Feedback"></textarea>              
            <input type="submit" name="submit" value="Submit Feedback" class="submit">

        </form>

提前谢谢您。

编辑:我觉得自己很傻。我忘了在 php 脚本中附加错误消息哈哈。感谢所有回答的人。

最佳答案

您不能将 1 个键映射到 2 个值。

关于php - 从 PHP 返回两个 2 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287182/

相关文章:

php - Vtiger6如何与现有网站集成

javascript - axios 拦截器和异步登录

ajax - 如何在NodeJS的同步请求中添加参数

php - Laravel:使用 try...catch 和 DB::transaction()

php - 数据库\Eloquent\MassAssignmentException 家族

php - 单击 PHP 按钮加载更多 MYSQL 结果

jQuery .index() 返回负数

Jquery 对话框 : content shown before the dialog is open

jquery - Ennui : how to keep navigation arrows visible 的内容 slider

php - 使用 jQuery (ajax) 和 PHP 插入我的数据库