在php while循环内引导模态以显示不同的信息

时间:2018-12-02 05:48:12

标签: php twitter-bootstrap bootstrap-modal

所以我有一个while循环,我正在从数据库中删除它们的名称和描述 因此,当我单击任何一个部件时,我都希望模态显示我在模态中单击的项目的名称,希望这张图片能更好地描述它 下面是我到目前为止的代码 当我单击模式时,无论在何处单击

,我都会显示列表中第一项的名称
  while($row = mysqli_fetch_assoc($result))
    {
     $name= $row['name_of_product'];
    $description = $row['description']
   ?>
   <a href="#" data-toggle="modal" data-target="#mymodal">
                        <div class="col-sm-4">
                            <?php echo name;  ?>
                            <?php echo description ;  ?>
                        </div>
                    </a>
   <div id="mymodal" class="modal fade" role="dialog">
                <div class="modal-dialog">
                    <!-- Modal content-->
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                            <h4 class="modal-title">Modal Header</h4>
                        </div>
                        <div class="modal-body">
                            <p><?php echo $name; ?></p>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                        </div>
                    </div>

                </div>
            </div>
<?php } ?>

enter image description here

2 个答案:

答案 0 :(得分:0)

好像您没有序列化模态...如果您想以这种方式进行操作,您的代码应该像这样;

<!-- language-all: lang-html -->

 while($row = mysqli_fetch_assoc($result)) {
    $procuct_id =  $row['ID'];
    $name =     $row['name_of_product'];
    $description =  $row['description']
?>
   <a href="#" data-toggle="modal" data-target="#mymodal_<?php echo $procuct_id;?>">
        <div class="col-sm-4">
            <?php echo name;  ?>
            <?php echo description ;  ?>
        </div>
    </a>
   <div id="mymodal_<?php echo $procuct_id;?>" class="modal fade" role="dialog">
        <div class="modal-dialog">
            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Modal Header</h4>
                </div>
                <div class="modal-body">
                    <p><?php echo $name; ?></p>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>

        </div>
    </div>
<?php } 
<--

一个更好的方法是编写一个javascript函数以显示通用模态窗口,然后运行ajax调用以将您的信息加载到“ modal-body” div中。您必须将唯一的ID传递给该调用,以使您的Ajax脚本进入数据库并获取要显示的信息。

答案 1 :(得分:0)

您没有按照自己的方式做事。您正在为while循环的每次迭代重新创建 mymodal ,这不是实现所需目标的更好方法。 请按照以下步骤操作。

1-在while循环之外创建mymodal。

2-将当前行的ID传递给javascript函数,并使用javascript填充该id的数据。

我已经设定了需要做的事情。尝试以下代码

add_filter( 'woocommerce_get_catalog_ordering_args', 'enable_catalog_ordering_by_modified_date' );
function enable_catalog_ordering_by_modified_date( $args ) {
    if ( isset( $_GET['orderby'] ) ) {
        if ( 'modified_date' == $_GET['orderby'] ) {
            return array(
                'orderby'  => 'modified',
                'order'    => 'DESC',
            );
        }
    }
    return $args;
}

add_filter( 'woocommerce_catalog_orderby', 'add_catalog_orderby_by_modified_date' );
function add_catalog_orderby_by_modified_date( $orderby_options ) {
    // Rename 'menu_order' label
    $orderby_options['modified_date'] = __("Sort by modified date", "woocommerce");

    return $orderby_options ;
}