在btn上创建带有自动填充输入字段的模式窗口,请单击 [英] Creating a modal window with autofill input fields on btn click

查看:77
本文介绍了在btn上创建带有自动填充输入字段的模式窗口,请单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试将json代码分配给field.values时遇到问题.一切都在工作[生成器,id查找],只是我不知道为什么它不将值分配给字段.它的工作原理是这样的.我有一个带的按钮,单击模式时会打开<span class="userId"></span>中正确显示的id,只需要执行以下操作即可.模式使用json.value/name = input.value加载字段.

I have faced a problem while trying to assign a json code to field.values. Everything is working [ the generator, the id lookup ] just I don't know why it doesn't assign the values to the fields. It works like this. I have a button with , while clicking a modal opens the id is showed properly in <span class="userId"></span> Just I need a action that fills on.modal load the fields with json.value/name = input.value.

$('.getUserEditID').on('click', function (event) {
        $('.userId').text($(this).data('useredit'));
        //$('input[name="id"]').val($(this).data('useredit'));
        $('#editModal').modal();
        $.ajax({
            type: "GET",
            url: "getuserdata.php?id=" + $(this).data('useredit'),
            success: function(data) {
                // data is the text returned from your php script
                $('input[name="username"]').val(data.username);
                $('input[name="password"]').val(data.password);
                //$('input[name="name"]').val(data.name); // You don't seem to have name in your script??
                $('input[name="surname"]').val(data.surname);
                $('select[name="level"] option[value="' + data.level + '"]').prop('selected', true);  
            }
        });
    });

getuserdata.php?id = 2示例响应

{
    "id": 2,
    "username": "Teeto",
    "surname": "",
    "password": "somepassword",
    "lastlogin": "2014-02-18 15:35:01",
    "level": 0
}

表单视图

<form class="editUser">
  <input type="hidden" name="id" />
  <div class="input-group">

    <span class="input-group-addon">
      User id to edit : 
      <span class="userId">
      </span>
    </span>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Username
    </span>

    <input type="text" name="username" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Password
    </span>

    <input type="text" name="password" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Name
    </span>

    <input type="text" name="name" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Surname
    </span>

    <input type="text" name="surname" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Level
    </span>

    <select class="form-control" name="level">
      <optgroup label="Administracja">
        <option value="9">
          Administrator
        </option>
        <option value="8">
          Administrator L2
        </option>
      </optgroup>
      <optgroup label="Pracownicy">
        <option value="7">
          Dział X
        </option>
        <option value="6">
          Dział Y
        </option>
        <option value="5">
          Dział Z
        </option>
      </optgroup>
      <optgroup label="Klienci">
        <option value="4">
          Klient Indywidualny
        </option>
        <option value="3">
          Klient Korporacyjny
        </option>
      </optgroup>
      <optgroup label="Użytkownicy">
        <option value="2">
          Użytkownik III
        </option>
        <option value="1">
          Użytkownik II
        </option>
        <option value="0">
          Użytkownik
        </option>
      </optgroup>
    </select>
  </div>
</form>

推荐答案

解决方案:

在顶部添加json生成器(getuserdata.php)

Add in your json generator (getuserdata.php) at the top

header('Content-Type: application/json');

我的情况是生成器是:(还需要包括数据库连接等)

My case the generator is : ( also need to include db connection etc )

header('Content-Type: application/json');
    $getLev = $db->row("SELECT * FROM tbl_users WHERE id = :username",array("username" => $_GET['id']));

            $data = array(
            'id'            => $getLev["id"],
            'username'           => $getLev["username"],
            'surname'   => $getLev["surname"],
            'password'          => $getLev["password"],
            'lastlogin' => $getLev["lastlogin"],
            'level' => $getLev["level"]
            );
              echo (json_encode($data));

脚本

$('.getUserEditID').on('click', function (event) {
        $('.euserId').text($(this).data('useredit'));
        $('#editModal').modal();
        var otherPro = $('.euserId').text();
        console.log(otherPro);
        var fillFields = function(){ 

        $.ajax({ 
            type: 'POST', 
            url: "getuserdata.php?id="+ otherPro,
            datatype: 'json',
            success: function(data){ 

            $.each(data, function (key, value) {
                $( '#' + key ).val( value ); 
            });

            } 
        }); 
    } 
    // call the function 
    fillFields("1"); 
    });

模式(添加到您的主页上按钮所在的位置)

<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="Delete User" aria-hidden="true" style="display: none;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="panel-primary">
                <div class="panel-heading">
                        <h3 class="panel-title"><i class="fa fa-user"></i> Modyfikacja uzytkownika</h3>

                </div>
            </div>
            <div class="modal-body">
                <div id="deleteholder"></div>
                <div id="msg-loader"></div>
                <form class="editUser">
  <div class="input-group">

    <span class="input-group-addon">
      User id to edit : 
      <span class="euserId">
      </span>
    </span>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Username
    </span>

    <input type="text" name="username" id="username" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Password
    </span>

    <input type="text" name="password" id="password" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Name
    </span>

    <input type="text" name="name" id="name" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Surname
    </span>

    <input type="text" name="surname" id="surname" class="form-control" placeholder="" required>
  </div>
  <br>
  <div class="input-group">

    <span class="input-group-addon">
      Level
    </span>

    <select class="form-control" name="level" id="level">
      <optgroup label="Administracja">
        <option value="9">
          Administrator
        </option>
        <option value="8">
          Administrator L2
        </option>
      </optgroup>
      <optgroup label="Pracownicy">
        <option value="7">
          Dział X
        </option>
        <option value="6">
          Dział Y
        </option>
        <option value="5">
          Dział Z
        </option>
      </optgroup>
      <optgroup label="Klienci">
        <option value="4">
          Klient Indywidualny
        </option>
        <option value="3">
          Klient Korporacyjny
        </option>
      </optgroup>
      <optgroup label="Użytkownicy">
        <option value="2">
          Użytkownik III
        </option>
        <option value="1">
          Użytkownik II
        </option>
        <option value="0">
          Użytkownik
        </option>
      </optgroup>
    </select>
  </div>
                </form>

            </div>

            <div style="padding: 10px 15px;background-color: #f5f5f5;border-top: 1px solid #dddddd;border-bottom-right-radius: 3px;border-bottom-left-radius: 3px;">
                <button id="editUser" class="btn btn-primary">Edit</button>
                <button class="btn btn-success" href="#" id="close" data-dismiss="modal">Close</button>
            </div>
            <!-- /.modal-content -->

        <!-- /.modal-dialog -->
    </div>
</div>
</div>

按钮生成器(在我的情况下,在foreach循环中用于生成表)

<button data-useredit="'.$value['id'].'" class="btn btn-primary btn-sm btn-round collapsed getUserEditID"><i class="fa fa fa-wrench"></i> Edit</button>

我希望这个可以帮助任何人.将来,您可以将 onClick事件分配给#editUser 使它甚至成为[记录查找] +修改脚本.

I hope this one helps anyone. In the future you can assign a onClick event to #editUser to make it even a [record lookup]+modify script.

这篇关于在btn上创建带有自动填充输入字段的模式窗口,请单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆