如何将对象转换为HTML项目符号列表
How to convert object into HTML bullet list?
我有一个通过JSON AJAX请求检索的对象,它看起来像这样:
{
"success":false,
"errors": {
"name":"Name you entered is not valid!",
"emailError":"The email address you entered is not valid"
}
}
现在我需要将中的errors
属性转换为HTML列表。这就是我在这个阶段使用这些错误的方式:
if (!data.success) { // If fails
if (data.errors.emailError) {
$('#messages').fadeIn(1000).append('<div class="response-output">' + data.errors.emailError + '</div>');
}
}
更新:我的服务器端代码如下:
$errors = array(); //To store errors
$form_data = array(); //Pass back the data to `form.php`
if(isset($_POST['your_name'], $_POST['your_email'], $_POST['your_message'])) {
// Sanitize and validate the data passed in
if (preg_match ('/^[A-Z ''.-]{2,60}$/i', $_POST['your_name'])) {
$name = filter_input(INPUT_POST, 'your_name', FILTER_SANITIZE_STRING);
} else {
$errors['name'] = 'Name you entered is not valid!';
}
$email = filter_input(INPUT_POST, 'your_email', FILTER_SANITIZE_EMAIL);
$email = filter_var($email, FILTER_VALIDATE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Not a valid email
$errors['emailError'] = 'The email address you entered is not valid';
}
// if form fields ok
if (empty($errors)) {
// --- my mail
$mail_sent = mail($sendTo, $subject , $emailbody, implode("'r'n", $headers));
if ($mail_sent == true){
// Success massege
$form_data['success'] = true;
$form_data['posted'] = 'Your requirement have been sent. We will get back to you soon.';
}
} else {
$form_data['success'] = false;
$form_data['errors'] = $errors;
}
//Return the data back to form.php
echo json_encode($form_data);
}
但我想在我的#messages
分区中创建HTML列表。希望有人能帮我。
当success
为false时,您可以使用for
循环来迭代errors
对象的属性,并从中创建所需的ul
和li
元素:
if (!json.success) {
var $ul = $('<ul />').appendTo('#messages');
for (var key in json.errors) {
$('<li />', {
text: key + ': ' + json.errors[key]
}).appendTo($ul);
}
}
小提琴示例
请注意,可以通过使errors
属性包含数组而不是对象来改进响应。如何实现这一点取决于从AJAX请求生成响应的方式。
相关文章:
- 如何从 HTML 查询中删除项目
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 为非列表项目创建HTML实时搜索
- HTML/JS github页面项目没有't在使用firefox运行时加载图像或声音
- HTML选择,在DOM中选择了正确的选项,但在firefox中显示了错误的项目
- 终于有办法让重构在Eclipse Kepler中的JavaScript、HTML项目中发挥作用了吗
- 为什么这个Javascript没有隐藏HTML项目
- 将 Netbeans Ide 用于不带 Java 的 HTML 项目
- 如何在 iPad 上打开 HTML 项目
- 你如何使用CocoonJS进行HTML项目
- 从 JSON 数据创建 HTML 项目符号列表时出现问题
- 检查屏幕上是否存在html项目
- 如何将对象转换为HTML项目符号列表
- 显示JavaScript/HTML项目的数组
- 添加Javascript/HTML表单功能到'HTML项目'在COGNOS Report Studio
- 如何从网站中提取数据计数器,以便在另一个HTML项目中作为JS变量使用
- 如何在单独的浏览器选项卡中从web应用程序打开第三方HTML项目
- 如何使用单选按钮隐藏html项目
- Libgdx HTML项目未编译(没有可用的源代码..)
- 在HTML项目中分离关注点的最佳实践