【发布时间】:2012-07-02 02:19:12
【问题描述】:
我有一个带有两个输入的小型反馈表。我希望错误消息使用 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 脚本中附加错误消息哈哈。感谢所有回答的人。
【问题讨论】:
-
JSON 是表示 1 个对象所必需的,当然您可以想出一种方法将两个错误消息放在一个对象中。
-
啊,我是这么想的。然后我会将我的消息放入一个对象中。我只是想看看是否可以返回多个对象。谢谢。
标签: php jquery ajax json jquery-mobile