PHP:如何在模态URL中放置和传递变量

时间:2014-11-19 21:19:01

标签: php

所以,我有一个按钮,可以在同一页面中直接链接到模态。

这是按钮和网址

<a data-toggle="modal" 
   href="main_user.php?user_id=<?php echo $user['user_id']; ?>#myModal" 
   class="btn btn-warning">

(我尝试在$user_id之前回复#modal)是不是?

单击按钮后,将出现模态。 这是表格的模态。

<form class="form-login" action="action/doEditUserStatus.php" method="post">
          <div class="login-wrap">
               <div class="changestatus">
                   <p>Banning or Activing User Status</p></div>
                        <div class="btn-group" data-toggle="buttons">
                            <label class="btn btn-success active">
                               <input type="radio" name="options" value="1" autocomplete="off"  checked> Actived
                            </label>
                            <label class="btn btn-primary">
                              <input type="radio" name="options" value="2" autocomplete="off"> Banned
                            </label>
                        </div>
          </div>
           <div class="modal-footer">
                <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button>
                <button class="btn btn-theme" name="modalSubmit" type="submit">Submit</button>
           </div>
    </form>

然后我尝试提交模态表单,但操作无法读取我在$user_id之前放置的#modal

更新: 表格代码:

所以这是我的表:

<tr class="success">
   <th class="numeric">ID</th>
   <th class="numeric">E-mail</th>
   <th class="numeric">Name</th>
   <th class="numeric">Phone</th>
   <th class="numeric">Picture</th>
   <th class="numeric">Status</th>
   <th colspan="2" class="numeric">Action</th>
</tr>


<tr>
   <td class="numeric"><?php echo $user['user_id']; ?></td>
   <td class="numeric"><?php echo $user['email']; ?></td>
   <td class="numeric"><?php echo $user['name']; ?></td>
   <td class="numeric"><?php echo $user['phone']; ?></td>
   <td class="numeric"><?php echo $user['picture']; ?></td>
   <td class="numeric">
       <a data-toggle="modal" href="main_user.php?user_id=<?php echo $user['user_id']; ?>#myModal" class="btn btn-warning">
          <span class="glyphicon glyphicon-edit" aria-hidden="true"></span>&nbsp;Change Status
        </a>
   </td>
</tr>

主要问题是: 当我点击按钮时,会出现模态,但它无法从该按钮获得$user_id

3 个答案:

答案 0 :(得分:3)

将带有user_id的隐藏输入字段放入表单中:

<input type="hidden" name="user_id" value="<?php echo $user['user_id']; ?>">

编辑:如果你的意思是Bootstrap试试这个:

链接/按钮:

<a data-toggle="modal" data-userid="<?php echo $user['user_id']; ?>"
   href="main_user.php#myModal" 
   class="btn btn-warning">

隐藏表格字段:

<input type="hidden" name="user_id" value="">

使用Javascript:

$('#myModal').on('show.bs.modal', function(e) {
    var userid = $(e.relatedTarget).data('userid');
    $(e.currentTarget).find('input[name="user_id"]').val(userid);
});

另请参阅http://getbootstrap.com/javascript/#modals-related-targetPassing data to a bootstrap modal

你应该在你的问题中提到过Bootstrap。 PHP不是合适的标签。

答案 1 :(得分:1)

如果你的链接会进行重定向,这将有效:

您需要在表单中添加一个隐藏输入,其中包含$_GET['user_id']变量(包含url中参数的值):

<input type="hidden" name="user_id" value="<?php echo (int)$_GET['user_id'] ?>" />

但是,如果我是对的,这个链接由twitter bootstrap处理,这将阻止其默认行为。所以没有实际的重定向。您可以做的是在链接中使用自定义数据属性:

<a data-toggle="modal" 
   data-userid="<?php echo $user['user_id']; ?>"
   href="#myModal" 
   class="btn btn-warning">

使用一些javascript来处理这个问题,将隐藏的输入字段添加到表单中:

$(document).ready(function(){
    $('[data-userid]').click(function(){
        var userid = $(this).data('userid');
        var form = $('form.form-login');
        var input = $('<input type="hidden" name="user_id" value="'+userid+'" />');
        if (form.find('input[name="user_id"]').length) {
            form.find('input[name="user_id"]').val(userid);
        } else {
            form.prepend(input);
        }
    });
});

答案 2 :(得分:0)

如何将ID添加到数据目标

<a href="#"  data-toggle="modal" data-target="#myModal-<?php echo $user['user_id'];?>" class="btn btn-warning btn-lg">click me</a>

现在在您的模式ID中添加此

myModal-<?php echo $user['user_id'];?>

您可以基于该ID动态加载数据