请帮助我,我在使用 jquery 在 codeigniter 上编辑或更新(CRUD)时的模态未完全关闭,更新成功但显示为空白
这是我在表单上的提交按钮
<button onclick='update' data-toggle="modal" data-target="#myModals<?php echo $data->id ; ?>" class="btn btn-warning">edit</button>
这是我的更新模式
<!-- Modal -->
<div id="myModals<?php echo $data->id ; ?>" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">edit</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="user">username:</label>
<input type="text" class="form-control" id="user<?php echo $data->id ; ?>" value="<?php echo $data->username ?>">
</div>
<div class="form-group">
<label for="pass">Password:</label>
<input type="text" class="form-control" id="pass<?php echo $data->id ; ?>" value="<?php echo $data->password ?>">
</div>
<button type="submit" onclick='update(<?= $data->id ;?>)' class="btn btn-success">update data</button>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
这是我的 jquery 脚本
function update(id){
var user = $("#user"+id).val();
var password = $("#pass"+id).val();
$.ajax({
dataType: 'html',
url: "<?= site_url('ajax/update'); ?>",
type: "POST",
data: "username="+user+"&password="+password+"&id="+id,
}).done(function(data) {
$("#myModals"+id).modal('hide');
load();
});
我的 Controller 是
public function update(){
$id= $this->input->post('id');
$data = array(
'username' => $this->input->post('username'),
'password' => $this->input->post('password')
);
$this->model_ajax->update_data('user', $data, $id);}
我的模态是
public function update_data($table, $data, $id){
$this->db->where('id',$id);
$this->db->update($table, $data);
}
最佳答案
您需要将数据从 Controller 发送回脚本,然后更新 DOM。
在你的 Controller 中,比如:
public function update()
{
$id= $this->input->post( 'id' );
$data = array(
'username' => $this->input->post( 'username' ),
'password' => $this->input->post( 'password' )
);
$this->model_ajax->update_data( 'user', $data, $id );
// return the updated data via json
echo json_encode( $this->input->post() );
}
然后在你的 jQuery 中
function update(id){
var user = $("#user"+id).val();
var password = $("#pass"+id).val();
$.ajax({
dataType: 'html',
url: "<?= site_url('ajax/update'); ?>",
type: "POST",
data: "username="+user+"&password="+password+"&id="+id,
})
.done(
function( data ) {
$( "#myModals" + data.id ).modal( 'hide' );
load();
}
);
}
关于javascript - 为什么模式不能用 codeigniter jquery 和 bootstrap 完全关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39394222/