Javascript通过AJAX实现Bootstrap模式

时间:2018-03-16 03:20:50

标签: javascript jquery html ajax bootstrap-4

当前的计划概念:

  1. 使用传递的dataInput id填充页面,然后使用带有按钮input type=submit的行创建一个表,当使用edit()和dataInput按下时,该按钮会调用函数onclick()标识。
  2. 然后edit()函数使用dataInput id值对/getData进行ajax调用。
  3. getData/在查询调用后返回并返回结果。
  4. 然后在/editData页面中动态创建并填充表单。
  5. 期望的输出:

    1. 使用传递的dataInput id填充页面,然后使用带有按钮input type=submit的行创建一个表,当使用edit()和dataInput按下时,该按钮会调用函数onclick()标识。
    2. 然后edit()函数进行ajax调用,在屏幕上创建一个带有/getData并带有dataInput id值的bootstrap 4模态。
    3. getData/在查询调用后返回并返回结果。
    4. 然后动态创建模态中的表单并在当前页面中填充并检索数据。
    5. 以下是我目前的职能:

      function populateData(dataInput) {
        var row = $('<tr id=' + dataInput.id + '/>');
        $('#table').append(row);
        row.append($('<td>' + dataInput.name + '</td>'));
        row.append($('<td>' + dataInput.description + '</td>'));
        row.append($(
          '<td><input type="submit" class="btn btn-warning" value="edit" onclick="edit(' +
          dataInput.id + ')"/>'));
      }
      
      function edit(id) {
        $.ajax({
          type: 'GET',
          url: '/getData?id=' + id,
          success: function(data) {
            var dataInput = JSON.parse(data)[0];
            window.location = '/editData?id=' + dataInput.id;
      
          }
        })
      }
      
      app.get('/getData', function(req, res) {
        var content = {};
        mysql.pool.query('SELECT * FROM dataTable WHERE id=?', [req.query.id],
          function(err, rows, fields) {
            if (err) {
              next(err);
              return;
            }
            content.results = JSON.stringify(rows);
            res.send(content.results);
          });
      });
      
      使用html表单布局的

      处理程序:

      <div>
        <form id="form">
          <label for="name">Name:</label>
          <input type="text" id="name" name="name" placeholder="">
      
          <label for="description">Description:</label>
          <textarea id="description" name="description" rows="4" cols="50"></textarea>
        </form>
        <div class="centerButton">
          <input id="submit" class="btn btn-primary" type="submit" value="Save" onclick="save()" />
        </div>
      </div>
      

      Bootstrap模态示例:

      <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
          <div class="modal-content">
            <div class="modal-header">
              <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <div class="modal-body">
              ...
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
              <button type="button" class="btn btn-primary">Save changes</button>
            </div>
          </div>
        </div>
      </div>
      

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,经过大量的研究后,我终于建立了一个js函数来根据我的要求动态创建模态。使用此功能,您可以在一行中创建弹出窗口,例如:

puyModal({title:'Test Title',heading:'Heading',message:'This is sample message.'})

或者您可以使用其他复杂功能,例如iframe,视频弹出窗口等。  您可能希望将其链接到在ajax请求成功后调用的编辑功能。这样您就可以实时创建Modal,而不必担心在HTML中填充数据。 在https://github.com/aybhalala/puymodals上找到它。有关演示,请转到http://pateladitya.com/puymodals/