将php变量传递给模态twitter bootstrap不起作用

Posted

技术标签:

【中文标题】将php变量传递给模态twitter bootstrap不起作用【英文标题】:Passing php variable to modal twitter bootstrap not working 【发布时间】:2014-06-21 11:18:40 【问题描述】:

您好,我正在将 php 变量传递给 twitter boostrap 模态。但是当我单击模式内的链接时,我无法获得正确的 ID。请参阅下面的代码。 首先我创建了一个 foreach 函数,其中数据循环第二我创建了一个链接以显示模式第三我在模式内有操作链接,用户可以在其中更新、删除数据。我已经实现的是我可以将 php 的变量传递给模态操作,但是当我尝试其他行时它仍然显示相同的 id。

  <table class="table table-condensed table-bordered table-striped volumes">
    <thead>
      <tr>
        <th>ID</th>
        <th>Director</th>
        <th>Address</th>
      </tr>
    </thead>
    <tbody>


<?php

        foreach ($natcco_members as $nattco) 

        $id = $nattco['id'];
        echo "<tr>
              <td>".++$counter."</td>
              <td>".$nattco['director']."</td>
              <td><a href='#' class='b'>".$nattco['agent_name']."</a></td>
              <td>".$nattco['address']."</td>
             </td>";

?>

<!-- Modal html -->
<div id="myModal" class="modal fade">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Choose your actions!</h4>
            </div>
            <div class="modal-body" align="center">
                                <a href='update_sub_agent.php?id=<?php echo urlencode(htmlspecialchars($id)) ?>' class='btn btn-success'><i class='icon-pencil'></i> Edit</a> 
                                <a href='owner.php?id=".urlencode(htmlspecialchars($id))."' class='btn btn-info'><i class='icon-user'></i> Owner</a> 
                                <a href='fla.php?id=".urlencode(htmlspecialchars($id))."' class='btn btn-warning'><i class='icon-list-alt'></i> FLA</a>  
                                <a href='delete.php?id=".urlencode(htmlspecialchars($id))."' class='btn btn-danger'><i class='icon-remove'></i> Delete</a> 
           </div>
            <div class="modal-footer">

            </div>
        </div>
    </div>
</div>

          <?php "</tr>";

    

?>

</tbody>
</table> 

【问题讨论】:

不要把你的 Modal 放在表格内容中 您好@Manwal 感谢,我把 放在我的结束 之外,但它不起作用。 你能粘贴渲染的 HTML 吗? 嗨@ICanHasCheezburger,请参阅pastebin.com/u1XnKZ5a @JaysonLacson 渲染的 HTML 是您在浏览器上看到的输出。 右键->查看源代码 【参考方案1】:

我对你的代码做了一些修改,让我们先从你做的开始吧:

    <td>".$nattco['address']."</td> </td>";

    这必须是&lt;/tr&gt; 而不是&lt;/td&gt;

    您只需要一个模态框。我们将通过 jQuery 为他们传递id。所以只在表格末尾创建 1 个静态模式框。

现在你需要做的事情:

1) 将此$id = $nattco['id']; 用作您的&lt;tr id&gt;,这样它将是:

 $id = $nattco['id'];
 echo "<tr id='".urlencode(htmlspecialchars($id))."'> #...rest of your code

2) 为模态框中的按钮指定一个类:

<a href='update_sub_agent.php' class='btn btn-success edit'><i class='icon-pencil'></i> Edit</a>
                                                 <!-- ^edit class added -->
<a href='owner.php' class='btn btn-info owner'><i class='icon-user'></i> Owner</a>
                                   <!-- ^owner class added -->
<a href='fla.php' class='btn btn-warning fla'><i class='icon-list-alt'></i> FLA</a> 
                                    <!-- ^fla class added -->
<a href='delete.php' class='btn btn-danger delete'><i class='icon-remove'></i> Delete</a>
                                      <!-- ^delete class added -->

3) 添加hrefclass to your`标签:

`<td><a href='#myModal' class='b modal-box'>".$nattco['agent_name']."</a></td>`

最后,jQuery 位:

$('a.modal-box').click(function(e)
   id=$(this).closest('tr').attr('id');
   $('.modal-body .edit').attr('href','update_sub_agent.php?id='+id+'');
   $('.modal-body .owner').attr('href','owner.php.php?id='+id+'');
   $('.modal-body .fla').attr('href','fla.php?id='+id+'');
   $('.modal-body .delete').attr('href','delete.php?id='+id+'');
);

就是这样。这可以最小化您的代码,以便在动态传递单击行的id 时不会重复模态框。

您可以在这里查看演示:

DEMO

【讨论】:

嗨 @ICanHasCheezburger 模态有效,但我没有在 url 中获得 id。例如。 edit.php?(id=1) 请查看呈现的 html。 pastebin.com/sTkEk2Zb 我认为 jquery 或 javascript @ICanHasCheezburger 有问题 没有错误显示只是它无法获取url中的行ID。 @JaysonLacson 尝试将 jQuery 函数包装在 $(document).ready(function() //paste here ); 中并将其放在 HTML 之后。 嗨@ICanHasCheezburger 对不起我的错误。反正。它现在就像一个魅力。你就像我在这个地球上的天使! :) 请再来一个,您能否删除您在答案中创建的演示(全屏)?因为它包含我们的机密性,我不想公开它。非常感谢!

以上是关于将php变量传递给模态twitter bootstrap不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将php数据/变量传递给模态

在模态中将 Jquery 变量传递给 php

使用意图将变量传递给另一个android活动

传递 PHP 变量 ID 以创建和获取动态模态内容

将数据从模态 segue 传递给父级

将字符串传递给模态视图