检索不同格式的数据

时间:2016-09-12 09:05:29

标签: php jquery ajax

同一页面上的两个表单提交。两个表单和字段,具有不同的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;
}

1 个答案:

答案 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.