我正在尝试在引导程序模式内填充表单字段,以使用ajax更新数据库中的数据。我没有获取任何数据,而是空字段的模式弹出窗口。请检查我的代码,并帮助我解决问题。
这是控制器功能。
public function edit(){
$output = array();
$this->load->model("crud_data");
$patient_id = $this->input->post("patient_id");
$data = $this->crud_data->fetch_single($patient_id);
foreach ($data as $row) {
$output["name"] = $row->name;
$output["age"] = $row->age;
}
echo json_encode($output);
}
这是fetch_single模态函数。
public function fetch_single($patient_id){
$this->db->where("patient_id", $patient_id);
$query = $this->db->get('patients');
return $query->result();
}
该功能的Ajax
$(document).on("click", '.edit', function(){
var patient_id = $(this).attr("patient_id");
$.ajax({
url:"<?php base_url(); ?>crud/edit",
method:"POST",
data:{'patient_id':patient_id},
dataType:"json",
success:function(data){
$("#edit").modal("show");
$("#name").val(data.name);
$("#age").val(data.age);
$("#patient_id").val(patient_id);
$(".modal-title").html("Edit User")
},
});
});
我想获取字段中的数据,以便我可以对其进行更新。
答案 0 :(得分:0)
public function edit(){
$output = array();
$this->load->model("crud_data");
$patient_id = $this->input->post("patient_id");
$data = $this->crud_data->fetch_single($patient_id);
$output["name"] = $data ->name;
$output["age"] = $data ->age;
$this->output->set_content_type('application/json');
$this->output->set_output(json_encode($output));
}
如果您的模型和数据库正确执行此代码,则此代码必须正确。
答案 1 :(得分:0)
成功使用ajax时,您没有从控制器发送json_encode时解析数据。 因此,成功解析json_encode,然后将数据添加到模式中。
Mockito.when(mockedRequest.request())
谢谢
答案 2 :(得分:0)
我无法告诉您您的错,但易于调试。首先,您可以控制台ajax中接收的数据。在成功功能中,您可以控制台数据。如果为空,则将检查您的php函数。检查isset输入的$ patient_id,并检查
$this->crud_data->fetch_single($patient_id);
简述,您应该逐步检查以发现错误
答案 3 :(得分:-1)
控制器
如果仅获得一行,请不要使用循环
public function edit(){
$output = array();
$this->load->model("crud_data");
$patient_id = $this->input->post("patient_id");
$data = $this->crud_data->fetch_single($patient_id);
$output["name"] = $data ->name;
$output["age"] = $data ->age;
echo json_encode($output);
}
模型
要仅获取一行,请使用row()
而不是result()
public function fetch_single($patient_id){
$this->db->where("patient_id", $patient_id);
$query = $this->db->get('patients');
return $query->row();
}
Ajax成功功能
将值分配给输入字段后加载模态
success:function(data){
$("#name").val(data.name);
$("#age").val(data.age);
$("#patient_id").val(patient_id);
$(".modal-title").html("Edit User");
$("#edit").modal("show");
}