简体   繁体   中英

Codeigniter: How to return success/fail message to the user after submitting an ajax form

I'm starting to get the hang of Codeigniter, but apparently am missing something here.

I'm not sure how to return data to the user after an ajax form submission. Here are the relevant bits of my code, with the question inside:

View:

if (confirm("Are you sure?"))
    {
        var form_data = $('form').serialize();

        $.post("<?php echo site_url();?>" + "/products/update_multiple", (form_data),
// this is what I don't understand: how to populate the variable result with data returned from the model/controller?
           function(result) {
                    $('#myDiv').html(result);
            }
            )
    }

Controller :

function update_multiple()
{

 $this->load->model('products_model');
 $this->products_model->updateMultiple();
// What goes here, to grab data from the model and send it back to the ajax caller?
}

Model :

function updateMultiple()
{
// I have a drop down list to select the field to update. The values of the drop down list look like this: "TableName-FieldName". Hence the explode.

    $table_field = explode("-",$this->input->post('field'));
    $table = $table_field[0];
    $field = $table_field[1];

    $data = $this->input->post('data');

    $rows = explode("\n", $data);

    foreach($rows as $key => $row)
    {
        $values = explode(" ", $row);
        $arr[$key]["code"] = $values[0];
        $arr[$key][$field] = $values[1];
    }


   if ($this->db->update_batch($table, $arr, 'code'))
   {
       // Here is the problem. What should I return here, so that it would be sent back to the calling ajax, to populate the result variable?
   }

}

Return json

   if ($this->db->update_batch($table, $arr, 'code'))
  {
   print json_encode(array("status"=>"success","message"=>"Your message here"));
  }

jQuery inside your confirm function

$.ajax({
type: "POST",
url: "<?php echo site_url();?>" + "/products/update_multiple",
data:  $('form').serialize(),
    dataType: "json",
    success: function(content) {
    if (content.status == "success") {
       $('#myDiv').html(content.message);
    } 
        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM