Получите данные в ответе Ajax после успешного запроса вставки в Codeigniter - PullRequest
0 голосов
/ 17 января 2019

Я хочу вставить данные формы в базу данных, используя метод ajax, а затем перенаправить их на следующую страницу. я успешно передал данные в ajax и вставил в таблицу базы данных, но у меня возникла проблема: я хочу получить сгенерированный ссылочный идентификатор в ответе, чтобы я мог передать этот ссылочный идентификатор на следующую страницу, чтобы управлять другими записями формы. Как мы можем сделать это

Это часть Myform (имеющая два или три входа для справки) с кодом Ajax и где

<form id="visaForm" name="visaForm" action="https://www.domainurl.com/india-visa/personal-details" method="post">
  <input type="hidden" id="country" name="country" value="DZA"> 
            <input type="hidden" id="reference_number" name="reference_number" value="">
            <input type="hidden" id="visa_type_id" name="visa_type_id" value="1">
 <input id="next" class="btn primary-btn" type="button" value="Save &amp; Continue">
</form>
<script>
$('#next').on('click',function(){
var $form = $('#visaForm');
    var serializedData = $form.serialize();
    //alert(serializedData);
        $.ajax({
            type:'POST',
            url:"https://www.domainurl.com/india-visa/add-applicants",
            data: "gofor=save_data&"+serializedData,
            success:function(response){
                responsepre = response.split('~');
                document.getElementById("reference_number").value= responsepre[0];
                $('#visaForm').submit();
            }
        });
}); 

</script>

Это мой метод управления

public function add_applicants()
{
 $this->load->model('visa/Process_model');
 $this->Process_model->insertappdata(); 
}

Это моя модель

function insertappdata()
{
   $query=$this->db->query("select * from appstbl ORDER BY id DESC LIMIT 1");
   $data = $query->result_array();
   $str = $data[0]['appid'];
   $int = preg_replace('/[^0-9]/', '',$str);
   $pure_str = str_replace($int, "", $str);
   $appid = $pure_str.($int+147);

   $data = array(
    'phoneno' => $this->input->post('mobile'),
    'whatsappno' => $this->input->post('whatsappnumber'),
    'email' => $this->input->post('email_id'),
    'portofarrival' => $this->input->post('port_of_arrival'),       
    'appid'=>$appid,        
     );               
   $this->db->insert('appstbl', $data);
}

То, что я хочу, это передать вставленный «Appid» в Myview, поэтому он будет передан в следующем методе контроллера в URL-адресе действия формы.

1 Ответ

0 голосов
/ 17 января 2019

После вставки вы можете использовать insert_id() для получения последнего вставленного идентификатора.

Пример:

Модель:

   $this->db->insert('appstbl', $data);
   $insert_id = $this->db->insert_id();
   return $insert_id;

Контроллер:

$insert_id = $this->Process_model->insertappdata(); 
echo json_encode($insert_id); //return insert id to ajax

Обновлено: я только что понял, что вы имели в виду под $appid

Модель:

$this->db->insert('appstbl', $data);
       return $appid;

Контроллер:

$appid = $this->Process_model->insertappdata(); 
echo json_encode($appid); //return insert id to ajax
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...