同一页面上的两个表单提交。两个表单和字段,具有不同的ID和名称。 两种形式中的一种效果很好,但我对第二种形式有问题 如果输入错误,我需要正常获取错误消息,如果每件事都没问题,我需要数组数据,因为我想在表单第二步编写消息
我的PHP代码:
//To get errors messages normally
if(!empty($errors2)) {
$data != "noPassed";
echo display_errors2($errors2);
}
else {
//To retrieve data I need to code my message in step 2
$data2 = array();
$data2['client_id'] = $client_id;
$data2['client_civilite'] = $client_civilite;
$data2['client_name'] = $client_name;
$data2['res2'] = "passed";
header('Content-Type: application/json');
echo json_encode($data2);
}
脚本:
jQuery.ajax({
url : '/myfolder/parsers/check.php',
method : 'POST',
type : 'POST',
data : data,
success : function(data){
//I presume errors in followed condition
if (data != 'passed') {
jQuery('.messages_erreurs').html(data);
}
if(data2.res2 == 'passed') {
$(".frm").hide("fast");
$("#step2").show("slow");
$(".open1").css("display","none");
$(".open2").css("display","inline-block");
// accès à data.client_civilite, data.client_id, pour message d'identification .
$('#clt_id').val(data2.client_id);
$("#check_ok").html(data2.client_civilite+" "+data2.client_nom+" "+': identification réussie.');
}
获取错误消息的函数:
function display_errors2($errors2) {
$display2 = '<ul class="bg-danger">';
foreach ($errors2 as $error2){
$display2 .= '<li class="text-danger">'.$error2.'</li>';
}
$display2 .= '</ul>';
return $display2;
}
答案 0 :(得分:0)
首先,您应该决定从php脚本发回什么内容,以便您可以在javascript端轻松解析它:Text,html或json。
请求成功后,您发送回json,但是当出现错误时我没有看到该标题,所以我怀疑您在这种情况下发回正常文本。
当您发送回json时,您需要确保在使用它之前解析它。您可以通过设置dataType
属性来实现。那么你的data
变量将是一个对象(基于php脚本......),因此你可以访问这些值:
jQuery.ajax({
url : '/myfolder//parsers/check.php',
method : 'POST',
// Set the correct data type
dataType : 'json',
data : data,
success : function(data){
// Access the correct values
if (data.res2 != 'passed') {
// You need to set the errorText property (or similar) in php
jQuery('.messages_erreurs').html(data.errorText);
}
// etc.