我有一个将值插入数据库的功能。一切进展顺利,但我陷入了ajax进程,以显示插入到表的新行中的当前值。我无法找到显示或回显值的方法。我需要立即帮助。可能有人想出我应该添加什么。
如何回显ajax结果的值以显示在新行中。
这是我的模态..
public function pinsert() {
$amount = $this->input->post('amount');
$paid_date = $this->input->post('paid_date');
$project = $this->input->post('e1');
$data = array(
'paid_date' => $paid_date,
'amount' => $amount,
'pro_id' => $project
);
$this->db->insert('payment', $data);
}
我的控制器
public function payment_insert() {
$this->load->model('payment_model');
$feed= $this->payment_model->pinsert();
}
最后我的jquery为ajax
<script>
$(document).ready(function() {
$(".btn-primary").live('click',function(){
var post_data=$('.modal-body').find('input,select').serialize();
// var select=$('select').val();
$.ajax(
{
url: "<?php echo site_url("payment/payment_insert"); ?>",
type: 'POST',
data: post_data,
success: function(result)
{
// console.log(result);
var $tr = $('<tr/>');
$tr.append($('<td/>').html(result.p_id));
$tr.append($('<td/>').html(result.project_title));
$tr.append($('<td/>').html(result.amount));
$tr.append($('<td/>').html(result.paid_date));
$tr.append($('<td/>').html(result.pro_id));
$('.table tr:last').before($tr);
//$('#table').html('<tr><td>'+result+'</td></tr>');
}
});
return false;
});
});
</script>
答案 0 :(得分:2)
$.ajax({
url: "<?php echo site_url("payment/payment_insert"); ?>",
type: 'POST',
data: post_data,
dataType: 'json',
success: function(result)
{
//console.log(result);
$.each(result,function(key,value){
var NewRow = '<tr><td">'+value.p_id+'</td>';
NewRow += '<td>'+value.project_title+'</td>';
NewRow += '<td>'+value.amount+'</td>';
NewRow += '<td>'+value.paid_date+'</td>';
NewRow += '<td>'+value.pro_id+'</td>';
NewRow += '</tr>';
$(".table").append(NewRow);
});
}
});
return false;
});
我希望这能解决你的问题。当你追加一个新东西时,它会自动结束
答案 1 :(得分:1)
答案 2 :(得分:0)
您需要在控制器中json_encode($result)
结果。
并且在jquery中,ajax请求需要以json格式返回结果,如此
dataType : 'json'
我认为这会有所帮助。
答案 3 :(得分:0)
嗯,我认为你不需要从模型中返回结果为什么?因为你发送了在表单中输入的数据,所以当你通过ajax发送数据时,不要通过序列化发送整个表单。获取每个文本字段的值将其作为字符串发送,如果结果为true则显示行中的变量 但是,如果您仍希望通过模型插入记录后显示数据,而不是
public function payment_insert() {
$this->load->model('payment_model');
$amount = $this->input->post('amount');
$paid_date = $this->input->post('paid_date');
$project = $this->input->post('e1');
$data = array(
'paid_date' => $paid_date,
'amount' => $amount,
'pro_id' => $project
);
$feed= $this->payment_model->pinsert($data);
print json_encode($feed);
}
public function pinsert($data) {
$this->db->insert('payment', $data);
$last_id = $this->db->last_id();//return last inserted id
$this->db->where('id',$last_id);
$query = $this->db->get();
return $query->result_row();
}
你也可以只返回最后插入的id,然后通过将此id传递给它来从另一个模型函数中获取记录。 我希望它会对你有所帮助