使用_get从隐藏输入中获取id并将其插入数据库

时间:2017-03-09 06:53:05

标签: php mysql

我使用模态进行验证image here

<div class="modal-body">

    <div class="row">
        <div class="col-lg-8">
              <div class="form-group margin-top-20">
                <p><strong>Do you want to join this group?</strong></p>
              </div>                 
        </div><br>

          <button type="button" name="join" id = "join" class="btn btn-black">Join</button>
          <button type="button" class="btn btn-black" data-dismiss="modal">Cancel</button>

                                 <?php

                                $db = new Group($conn);
                                 $gid = '';
                                 if(isset($_POST['join'])){
                                    if ( !empty($_GET['gr_id'])) {
                                          $gid = $_GET['gr_id'];

                                  $inserted = $db->insertgroup($session_id, $gid);
                              ?>
                                 <script>
                                   window.location = '../views/groups.php';
                                 </script> 
                                <?php
                                 }
                                }
                                ?> 
    </div>
</div>

使用这个脚本我获取某个组的id并将其插入我的数据库但似乎gid没有得到提取所以当我尝试点击连接按钮时会发生什么

<script>
window.location = '../views/groups.php';
</script> 

这个脚本应该运行但没有..

我从这里获取ID:

        <?php 
    $res = $db->g_viewlist();
    $gid ='';
    foreach ($res as $key => $value){
    $gid = $value['g_id'];

    ?>      
    <div class="col-lg-12" align="center" style="border:1.5px solid #59960b;padding-bottom:10px;padding-top:10px;">

    <button class="btn2 btn-2"  data-toggle="modal" data-target="#joinModal" style="padding: 2px 2px; margin-left:50%"><strong> Join</strong></button>
<input id="gr_id" type="hidden" name="gr_id" value="<?php echo $gid ?>">               
    </div>
    <?php
    }
    ?>

gid来自模态形式之外..有没有办法为我提取id以便能够将其插入我的数据库?

1 个答案:

答案 0 :(得分:1)

你做的方法是错的。您无法使用$_GET方法和$_POST获取gr_id值。您还会在模式中发布任何表单,因此$_POST将无效。

调用模态HTML:

 <button class="btn2 btn-2 join"  data-id="<?php echo $value['g_id']; ?>" 
data-toggle="modal" data-target="#joinModal" style="padding: 2px 2px;
 margin-left:50%"><strong> Join</strong></button>

我添加了新类'join'并添加了一个属性'data-id'。

修改你的模态结构代码:

<div class="modal fade" id="joinModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" data-keyboard="false">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" aria-label="Close" data-dismiss="modal"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal Heading</h4>
      </div>
      <div class="modal-body">
        Do you want to join this group?
      </div>
      <div class="modal-footer">
          <button type="button" name="join" id = "join" class="btn btn-black" onclick="joinGroup()">Join</button>
          <button type="button" class="btn btn-black" data-dismiss="modal">Cancel</button>
          <input type="hidden" name="join_id" id="join_id">
      </div>
    </div>
  </div>
</div>

我添加了<input type="hidden" name="join_id" id="join_id">onclick="joinGroup()"来存储join_id值并分别将其保存到数据库中。

使用javascript点击功能,您可以将data-id值分配给模态框的输入隐藏字段。之后,当有人点击JOIN按钮时,ajax将触发并将数据保存到数据库中。

<script type="text/javascript">

$('.join').click(function(){
    var id = $(this).attr('data-id');
    $('#join_id').val(id);
});

function joinGroup(){
    var join_id = $('#join_id').val();

    $.ajax({
        url:"insertvalue.php",  // ajax call to insert data
        data: 'join_id=' + join_id,
        success:function(data) {
          window.open('your url','_self'); 
        }
    });
}

</script>