当按钮在php foreach函数内单击时,通过id显示模态

时间:2018-05-03 03:18:31

标签: javascript php jquery

我在 php foreach功能中有一个按钮。我有一个模式,其中 id 对应于单击的按钮。现在,我想要做的是当我点击按钮时按ID显示模态,但第一个按钮仅用于显示模态而另一个按钮不用。我该怎么办?这是我的代码......

           <?php $count = 0;  ?>
                <?php foreach ($land_i as $li){ ?>
                <?php $count++ ?>
                    <tr>                             
                    <td><?= $li['date_approved'] ?></td>
                    <td><?= $li['status'] ?></td>
                    <td><button type="button" class="btn btn-primary" data-toggle="modal" data-target=".modal_<?= $li['lpf_no'] ?><?= $count ?>" data-backdrop="static" data-keyboard="false">Select</button>
                    </td>
                    </tr>
          <?php } ?>

我尝试使用计数从按钮生成它的唯一编号。我知道这是无意义的,因为每个按钮已经有唯一ID 。这是我的模态...

                <div class="modal fade modal_<?= $li['lpf_no'] ?><?= $count ?>" tabindex="-1" role="dialog" aria-hidden="true" style="display: none;">
                <div class="modal-dialog modal-lg">
                  <div class="modal-content">

                    <div class="modal-header">
                      <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span>
                      </button>
                      <h4 class="modal-title" id="myModalLabel">In Progress...</h4>
                    </div>
                    <div class="modal-body">
                      <h4><?= $li['lpf_no'] ?></h4>
                    </div>
                    <div class="modal-footer">
                      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                      <button type="button" class="btn btn-primary">Save changes</button>
                    </div>

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

是的。希望有人会帮我这个。这是另一回事......我尝试将模态放在我的foreach函数中。它的工作原理,但模式破坏和页面的设计也是如此。所以我更喜欢把它放在foreach函数之外。

1 个答案:

答案 0 :(得分:0)

问题出在data-target。您将计数附加到循环中data-target的末尾(data-target=".modal_<?= $li['lpf_no'] ?><?= $count ?>),以及您的模态本身:<div class="modal fade modal_<?= $li['lpf_no'] ?><?= $count ?> ... </div>。问题是$count没有反映当前计数;到目前为止,循环已经完成; $count现在只引用最后一项。

假设你想为每个项目设置不同的模态,你确实需要在循环中输出模态 - 我实际上建议使用第二个循环,所以不必担心关闭你的桌子等事情:

<table>
<?php $count = 0; ?>
<?php foreach ($land_i as $li) { ?>
    <?php $count++ ?>
    <tr>                             
    <td><?= $li['date_approved'] ?></td>
    <td><?= $li['status'] ?></td>
    <td><button type="button" class="btn btn-primary" data-toggle="modal" data-target=".modal_<?= $li['lpf_no'] ?><?= $count ?>" data-backdrop="static" data-keyboard="false">Select</button>
    </td>
    </tr>
<?php } ?>
</table>

<?php $count = 0; ?>
<?php foreach ($land_i as $li) { ?>
    <?php $count++ ?>
    <div class="modal fade modal_<?= $li['lpf_no'] ?><?= $count ?>" tabindex="-1" role="dialog" aria-hidden="true" style="display: none;">
        ...
    </div>
<?php } ?>

这样,您最终会为每个项目设置不同的模态,并且它们都将具有正确的data-target引用。由于在开始第二次循环之前关闭了<table>,它也不应该破坏你的格式。