在 Codeigniter 中使用 Ajax 更新数据库记录
Update Database Record with Ajax in Codeigniter
我正在尝试从 ajax 响应中使用 ajax 更新数据库记录,获得成功消息,但实际的数据库记录根本没有更新。但它想知道当查询不更新数据库时,ajax 响应应该如何抛出成功消息。
视图:
// AJAX code to update the database
// update marks when form is submitted
$('#updateMarks').on('submit',function(event) {
event.preventDefault();
var practical_mark = $("#mark_written").val();
var written_mark = $("#mark_practical").val();
var comment = $("#comment").val();
var mark_id = $("#mark_id").val();
$.ajax({
type: "POST",
url: "<?php echo site_url('admin/exam_marks_update'); ?>",
data: { practical_mark : practical_mark,
written_mark: written_mark,
comment : comment,
mark_id : mark_id
},
success: function(response)
{
alert("success");
},
error: function(){
alert("Error");
},
});
});
<?php foreach($marks as $row2): ?>
<form method="post" role="form" id="updateMarks">
<tr>
<td class="text-center"><?php echo $student['name']; ?></td>
<td>
<!-- create two col table for marks category -->
<table class="table table-bordered table-hover toggle-circle">
<thead>
<tr>
<th data-toggle="true" class="text-center"><?php echo get_phrase('written_exam'); ?></th>
<th data-toggle="true" class="text-center"><?php echo get_phrase('practical_exam'); echo get_phrase('_(out_of_100)'); ?></th>
</tr>
</thead>
<tbody>
<tr>
<td class="text-center"><input type="number" value="<?php echo $row2['written_mark_obtained'];?>" id="mark_written" name="mark_written" class="form-control" /></td>
<td class="text-center"><input type="number" value="<?php echo $row2['practical_mark_obtained'];?>" id="mark_practical" name="mark_practical" class="form-control"/></td>
</tr>
</tbody>
</table>
<!-- end create two col table for marks category -->
</td>
<td class="text-center"><textarea class="form_control" id="comment" name="comment" rows="4" > <?php echo $row2['comment'] ?> </textarea></td>
<td class="text-center">
<input type="hidden" id="mark_id" name="mark_id" value="<?php echo $row2['mark_id'];?>" />
<button type="submit" class="btn btn-block btn-success btn-md"><i class="icon pe-pen" aria-hidden="true"></i><?php echo get_phrase('update'); ?></button>
</td>
</tr>
</form>
<?php endforeach; ?>
控制器:
function exam_marks_update(){
$data['written_mark_obtained'] = $this->input->post('written_mark');
$data['practical_mark_obtained'] = $this->input->post('practical_mark');
$data['comment'] = $this->input->post('comment');
$this->crud_model->update_student_marks($data, $this->input->post('mark_id'));
}
型
function update_student_marks($data, $mark_id){
$this->db->where('mark_id', $mark_id);
$this->db->update('mark', $data);
}
如果
对服务器的请求成功,则始终调用Jquery ajax success
回调函数。您需要从服务器返回响应数据,以验证数据库操作何时成功。 我已经编辑了您的代码,这可能对您有用。
型
function update_student_marks($data, $mark_id){
.....
return $this->db->update('mark', $data);
}
控制器::
function exam_marks_update(){
.....
if($this->crud_model->update_student_marks($data, $this->input->post('mark_id'))){
echo json_encode(array('success' => true));
exit;
} else {
echo json_encode(array('success' => false));
exit;
}
}
视图
$.ajax({
type: "POST",
url: "<?php echo site_url('admin/exam_marks_update'); ?>",
dataType :'json',
data: { practical_mark : practical_mark,
written_mark: written_mark,
comment : comment,
mark_id : mark_id
},
success: function(response)
{
if (response.success === true){
alert("success");
} else {
alert('failed');
}
},
error: function(){
alert("Error");
},
});
您的控制器正在检索不存在的输入...您需要将name, id
作为输入传递,而不是回显的值...请参阅控制器:
function exam_marks_update(){
$data = array(
'written_mark_obtained' => $this->input->post('written_mark'),
'practical_mark_obtained' => $this->input->post('practical_mark'),
'comment' => $this->input->post('comment')
);
$this->db->where('mark_id', $this->input->post('mark_id'));
$this->db->update('mark', $data);
}
并更改此设置:
var comment = $("#comment").val();
自
var comment = $("#comment").html();
由于评论是文本区域...
相关文章:
- 通过CSV文件上载更新数据库表
- 可以't更新数据库中的对象
- 通过javascript确认AJAX更新数据库
- 用jsp更新数据库
- 通过Ajax PHP从Javascript onClick更新数据库
- 根据多个输入值更新数据库
- 使用javascript更新数据库
- 使用jquery ajax更新数据库;不起作用
- 如何在zend中选择更改html后更新数据库
- 编辑以前保存的文档也会更新数据库中的文档
- 按钮单击“更新数据库”
- 在文本区域的Change上进行AJAX调用以更新数据库
- javascript倒计时并更新数据库php
- 如何更新数据库中新数据的视图
- 需要 Ajax 函数 - 在不刷新页面的情况下更新数据库
- JSP - 在更新数据库之前,需要使用用户给定的值检查数据库中的值
- 倒计时秒数,更新数据库并循环倒计时
- 在不超出页面的情况下更新数据库
- 如何通过单击Rubyonrails视图中的按钮来更新数据库中的多个表
- 使用 ajax 函数触发的 php 更新数据库