javascript - 为什么模式不能用 codeigniter jquery 和 bootstrap 完全关闭

标签 javascript php jquery twitter-bootstrap codeigniter

请帮助我,我在使用 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">&times;</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/

相关文章:

javascript - 如何更改 Angular JS 中的 JSON 数据格式?

Javascript/Jquery 从字符串中获取 num 行

php - 如何将 18 个变量传递到一个函数中以验证 PHP/MySQL 交互

javascript - Wookmark js 不创建列

javascript - 点击下拉菜单

javascript - 如何更改范围 slider 以显示金钱?

javascript - 如何动态替换javascript对象属性名

javascript - 如何使用 WebdriverIO 设置下载 .dmg 文件的首选项?

php artisan test 仍然加载 .env 而不是 .env.testing

php - Insert Ignore - 有没有办法知道语句是否被忽略?数据库