如何通过codeigniter中的ajax和Jquery显示错误

时间:2017-02-03 07:30:16

标签: javascript php jquery ajax codeigniter

这是我的ajax电话

function exportCSV(){
        var sampleid = $("#sampleid").val();
        var scheme = $("#scheme").val();
        var v = $("#v").val();
        var date = $("#date").val();
        var assignedvalue = $("#assignedvalue").val();
        var units = $("#units").val();
        var assayvalue = $("#assayvalue").val();
        var analyte = $("#analyte").val();
        var filename=$("#filename").val();
        var sample_error=$("#sample_error").val();
        $.ajax({
            type: "POST",
            url: "<?php echo base_url(); ?>" + "import/validate_file",
            dataType: 'json',
            data: {
                sampleid: sampleid,
                scheme: scheme,
                v: v,
                date: date,
                assignedvalue: assignedvalue,
                units: units,
                assayvalue: assayvalue,
                analyte: analyte,
                filename:filename,
                sample_error: sample_error
            },
            success: function (data) {
                console.log(data);  //as a debugging message.
            }

        });
    }

这是我的控制器

<?php
if (!empty($unit_check) and !empty($analyt) and !empty($sch) and count($sample_id) == count(array_unique($sample_id)) and $assigned_check == '1' and $assay_check == '1') {
    for ($row = 2; $row <= $lastRow; $row++) {
        $data['sample_id']      = $worksheet->getCell($sampleid . $row)->getValue();
        $data['scheme']         = $worksheet->getCell($scheme . $row)->getValue();
        $data['v']              = $worksheet->getCell($v . $row)->getValue();
        $data['units']          = $worksheet->getCell($unit . $row)->getValue();
        $data['date']           = $worksheet->getCell($date . $row)->getFormattedValue();
        $data['assay_value']    = $worksheet->getCell($assayvalue . $row)->getValue();
        $data['assigned_value'] = $worksheet->getCell($assignedvalue . $row)->getValue();
        $data['analyte']        = $worksheet->getCell($analyte . $row)->getValue();
        $data['trace_id']       = $insert_id;
        $this->import_model->insert_data($data);
        $response['success'] = true;
    }
} else {
    $data['sample_id']      = '';
    $data['analyte']        = '';
    $data['unit_check']     = '';
    $data['sch']            = '';
    $data['assigned_value'] = '';
    $data['assay_value']    = '';
    if (count($sample_id) != count(array_unique($sample_id))) {
        $data['sample_id'] = '1';
    }
    if (empty($analyt)) {
        $data['analyte'] = '1';
    }
    if (empty($unit_check)) {
        $data['unit_check'] = '1';
    }
    if (empty($sch)) {
        $data['sch'] = '1';
    }
    if ($assigned_check == '') {
        $data['assigned_value'] = '1';
    }
    if ($assay_check == '') {
        $data['assay_value'] = '1';
    }
    $data['file_name'] = '';
}
?>

我必须在ajax调用中显示错误和成功消息。

现在我成功地评估了数据并将其放入数据库中。

但我想通过点击提交按钮在页面末尾显示成功消息。

如果存在验证错误,则必须在页面末尾的字段中显示错误

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

这里面是ajax的成功方法

success: function (data) {
   $("#resultDiv").html(data)
}

在案例成功和失败的情况下从控制器返回一些实际数据。并根据您的数据里面的成功方法显示您的消息。 像:

success: function (data) {
     $("#resultDiv").html(data.success) //this requires string to convert your result in string if neccessary
     //But you should return a JSON data as msg from your controller
}

您应该将结果HTML元素放在例如:

<div id='resultDiv'></div> <!-- to match with #resultDiv -->

如果success=truesuccess=false

,请将响应数据置于两种情况下

在您的控制器中

if(.....){
  //what ever check you wanna do
  ..........
  ..........
  $response['msg']='success';
  header('Content-Type', 'application/json');
  echo json_encode($response);
}
else{
  $response['msg']='failed';
  header('Content-Type', 'application/json');
  echo json_encode($response);
}

在你的ajax中

success: function (data) {
   $("#resultDiv").html(data.msg)
}

答案 1 :(得分:0)

尝试类似:

$response = array(
    'errCode' = 0,
    'errMsg'  = 'msg'
);

通过json_encode()从php返回这种数组到ajax()调用并在ajax()成功中使用它,如:

var data = JSON.parse(response);

alert(data.errMsg);

您还可以检查errCode,如:

if(errCode == 0) { something }
if(errCode == 1) { something }