当前位置: 首页 > 知识库问答 >
问题:

ajax表单提交多个值并获得响应

樊博雅
2023-03-14

我正在使用一个表单并提交一个表单,其中包括名字、姓氏、电子邮件、用户名等字段。当ajax返回时,它返回一个错误消息字符串。如何分离该错误消息?我正在使用这个代码

共有2个答案

吕岳
2023-03-14

要将AJAX响应作为文本输出到网页上,首先在HTML中创建一个新的DIV

<div id="response"></div>

并使用以下脚本将Ajax文本响应写入DIV。您需要使用函数调用它。

var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("response").innerHTML=xmlhttp.responseText;
}

有关Ajax响应的更多信息http://www.w3schools.com/ajax/ajax_xmlhttprequest_response.asp

印子平
2023-03-14

可以使用响应代码。代码应该代表实际的错误。

当ajax返回时,它返回一个错误消息字符串。如何分离该错误消息?

您可以将错误消息集合作为JSON字符串发送,并根据需要在错误处理函数中处理这些错误。

在出错的情况下:

<?php
http_response_code(400);
// maps a form field to an error message.
$a = array('username' => 'no username', 'email' => 'no email');
echo json_encode($a);

在正常情况下:

<?php
http_response_code(200);
echo "Success message";

当您可以为单个状态代码设置事件处理程序,甚至只为successfail回调设置事件处理程序时,此方案可以与许多ajax库配合使用。

jQuery的一个示例:

$.ajax({
  statusCode: {
    400: function(jqXHR, textStatus, errorThrown) {
        var errors = JSON.parse(errorThrown);
        if (errors.username) {
            $('#username-error').text(errors.username);
        }
    },
    200: function(data) {
        // ...
    }
  }
});

香草JavaScript的一个示例:

var handlers = {
   400: function (responseText) {
       var errors = JSON.parse(responseText);
       if (errors.username) {
           var name_error = document.querySelector('#username-error');
           name_error.textContent = errors.username;
       }
   },
   200: function (responseText) { /* ... */ }
};

function ajaxCall(url, handlers) {
    var r = new XMLHttpRequest(); 
    r.open("POST", url, true);
    r.onreadystatechange = function () {
        if (r.readyState === 4 && typeof handers[r.status] === 'function') {
            handers[r.status](r.responseText);
        }
    };
    r.send(/* ... */);
}

ajaxCall('userform_validation.php', handlers);
 类似资料:
  • Framework7 可以通过ajax自动提交 有两种自动提交方式: 当用户提交了表单 (点击了提交按钮) 或者当通过代码触发了 "submit" 事件 当用户更改了表单的内容,或者当通过代码触发了 "change" 事件 submit时提交表单数据 只需要添加 "ajax-submit" class 在form上,当submit时就会自动通过ajax发送表单数据 <form action="se

  • 问题内容: 我有一个包含几种形式的页面。我想添加一个提交按钮,该按钮将允许同时保存所有表单,如下所示: 我遇到的问题是,提交第一个表单后,它将页面重定向到该表单的目的地-我想拦截该重定向,以便我可以处理下一个表单。 我知道这可以通过AJAX完成,这将以某种方式允许我捕获返回的页面(如果我选择的话可以忽略它),但是我不知道如何在不映射表单中的每个字段的情况下执行此操作手动。 有人可以帮忙吗? 问题答

  • 问题内容: 我有多个具有相同班级名称的表格 那么我如何才能在我尝试使用的这n个表格中提交一个表格 但是它总是在n个表单中提交第一个表单。如何在n个表单之间提交随机表单。愿任何人能帮助我。 问题答案: 序列化表格时,需要引用该表格…

  • 问题内容: 我是stackoverflow和CodeIgniter的新手,目前正在尝试在Internet上找到的一些简单代码示例,以开始使用。我现在正在处理的是一种使用CI和Ajax(jQuery)的表单,并将表单的输入保存在数据库中,然后在表单的同一页上显示最新的表单。如果我感到困惑,那是这里的4.7应用示例。最初的源代码位于此处,但为了与最新版本的CI配合使用,我对其进行了修改,并在下面引用了

  • 问题内容: 我想使用AJAX来确定表单的值对我来说是否可以接受(这不是表单验证)。AJAX 将确定是否提交表单。 下面,你会看到,当表单提交并根据返回什么我执行一个AJAX调用(无论是空白这是可以接受的,或者这是不能接受的错误信息),我想还是在。 我怀疑我的麻烦在于AJAX的。请帮助我摆脱AJAX呼叫,以便我可以执行类似的操作。 加工: 原版的: 问题答案: 由于ajax调用是异步的,因此必须阻止

  • 问题内容: 此代码正确吗?我正在尝试提交,如果文本区域再次为空,我也想提交。 我正在尝试上传: 谢谢… 问题答案: 用 代替 如果您使用的是最新版本的jquery。