javascript - 在 Codeigniter 中成功插入查询后在 Ajax 响应中获取数据
问题描述
我想使用 ajax 方法将表单数据插入数据库,然后将其重定向到下一页。我已经成功地在 ajax 中传递数据并插入到数据库表中,但我遇到的问题是,我想获得生成的参考 ID 作为响应,所以我可以将该参考 ID 传递到下一页以控制其他表单条目。我们应该怎么做
这是带有 Ajax 代码的 Myform 部分(有两个或三个输入供参考),其中
<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 & 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 上的下一个控制器方法传递。
解决方案
插入后,您可以使用insert_id()
检索最后插入的 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
推荐阅读
- php - 绑定参数问题
- html - Bootstrap 4 响应式表头对齐问题
- android - 避免波纹效果组合颜色
- python - 编辑数据后出现错误 django“MultiValueDictKeyError at /employeeUpdate/'id'”
- windows - 无法在 Windows 10 for Cassandra 上运行 prometheus
- yaml - GitHub Actions 将变量列表传递给 shell 脚本
- html - 如何使我的 SVG 图像适合父包装器 div?
- r - Lubridate 以非固定的“每月”为基础进行汇总
- rust - 从链表中删除项目的两种方法之间的区别?
- solr - 如何对日期索引执行日期范围查询 - SOLR