需要帮助在 codeigniter 中创建自动填充
Posted
技术标签:
【中文标题】需要帮助在 codeigniter 中创建自动填充【英文标题】:need help to create autofill in code igniter 【发布时间】:2017-09-11 14:37:28 【问题描述】:任何人都可以帮助如何使用 AJAX 在 codeigniter 3 中创建自动填充表单字段,我已经浏览过,但没有人成功
控制器:
function autofill()
$id_pemesan = $this->input->post('id_pemesan', TRUE);
$this->mod_marketing->autofill_by_id($id_pemesan,'pemesan');
$data = array(
'nama_depan' => nama_depan,
'nama_belakang' => nama_belakang,
'alamat' => alamat,
'provinsi_kota' => provinsi_kota,
'kode_pos' => kode_pos,
'email' => email,
'no_telp' => no_telp
);
echo json_encode($data);
型号:
function autofill_by_id($id_pemesan,$table)
return $this->db->get_where($table,array('id_pemesan', $id_pemesan));
脚本:
<script>
$(function()
$("#id_pemesan").change(function()
var id_pemesan = $("#id_pemesan").val();
$.ajax(
url: '<?php echo site_url('marketing/autofill'); ?>',
type: 'POST',
dataType: 'json',
data:
'id_pemesan': id_pemesan
,
success: function (pemesan)
$("#nama_depan").val(pemesan.nama_depan);
$("#nama_belakang").val(pemesan.nama_belakang);
$("#alamat").val(pemesan.alamat);
$("#provinsi_kota").val(pemesan.provinsi_kota);
$("#kode_pos").val(pemesan.kode_pos);
$("#email").val(pemesan.email);
$("#no_telp").val(pemesan.no_telp);
);
);
);
我最近的尝试仍然失败
【问题讨论】:
到目前为止的错误是什么?有什么问题? 【参考方案1】:更改控制器,使其检查响应是否应包含数据或错误。您实际上没有将行传递给数组,所以我猜这就是您想要的:
function autofill()
$id_pemesan = $this->input->post('id_pemesan', TRUE);
$row = $this->mod_marketing->autofill_by_id($id_pemesan,'pemesan');
if( $row )
$data = array(
'nama_depan' => $row->nama_depan,
'nama_belakang' => $row->nama_belakang,
'alamat' => $row->alamat,
'provinsi_kota' => $row->provinsi_kota,
'kode_pos' => $row->kode_pos,
'email' => $row->email,
'no_telp' => $row->no_telp
);
echo json_encode($data);
// No rows, or there was more than one row
else
echo json_encode(array('error' => 'No rows, or there was more than one row'));
更改模型以检查行:
function autofill_by_id( $id_pemesan, $table )
$query = $this->db->get_where($table,array('id_pemesan', $id_pemesan));
return $query->num_rows() == 1
? $query->row()
: NULL;
修改 JS 以便检查错误:
$(function()
$("#id_pemesan").change(function()
var id_pemesan = $("#id_pemesan").val();
$.ajax(
url: '<?php echo site_url('marketing/autofill'); ?>',
type: 'POST',
dataType: 'json',
data:
'id_pemesan': id_pemesan
,
success: function (pemesan)
if( permesan.error )
alert( permesan.error );
else
$("#nama_depan").val(pemesan.nama_depan);
$("#nama_belakang").val(pemesan.nama_belakang);
$("#alamat").val(pemesan.alamat);
$("#provinsi_kota").val(pemesan.provinsi_kota);
$("#kode_pos").val(pemesan.kode_pos);
$("#email").val(pemesan.email);
$("#no_telp").val(pemesan.no_telp);
,
error: function()
alert('error 2');
);
);
);
【讨论】:
我已经尝试了您的代码,它仍然是空白并收到警报“没有行,或者有超过一行”或者它是因为我使用的 jquery-ui 版本?我使用 jquery-ui 1.11。 4 听起来你有其他东西破坏了响应。您需要转到浏览器控制台的“网络”面板并查看来自服务器的原始响应。以上是关于需要帮助在 codeigniter 中创建自动填充的主要内容,如果未能解决你的问题,请参考以下文章
使用 JWT 在 Code Igniter 4 中创建登录系统的过程