根据 PHP url 变量显示特定模态

Show specific modal depending on PHP url variable

如何根据 php 中的变量显示特定模态,该变量在 url 中被修改。

我正在使用响应式框架 Bootstrap。

我有一个包含多个模式的页面,每个模式对应一个产品。我需要从站点的其他部分创建一个 link 以转到页面 "products.php" 并自动显示所需的产品。

例如:

href="products.php?prod=1"

到目前为止,我只在加载页面时成功显示了模式,但是如果我添加或更改变量,它没有任何效果,根本不起作用。

这是我的:

开头

<?php
    //Variable to choose which modal to show, default = 1
    $prod = 1;
?>

然后是有识别id的模态

<div class="modal fade" id="product1" tabindex="-1" role="dialog" aria-hidden="true">
    <!-- Content of the modal -->
</div>

然后是页面加载时显示模式的脚本。

<script type="text/javascript">

    $(document).ready(function(){
        <?php if ($prod == 1) {
            echo "$(document).ready(function () {var a = 'PD1'; alert(a); });";
            echo "$('#product1').modal('show');";
        }elseif ($prod == 2) {
            echo "$(document).ready(function () {var a = 'PD2'; alert(a); });";
            echo "$('#product2').modal('show');";
        };
        ?>
    });

</script>

有什么想法吗?

您没有从 URI 中收集产品变量的值。要在您有 $prod=1 的页面顶部完成此操作;您可以输入以下代码行:

$prod = (isset($_GET['prod']))?$_GET['prod']:"1";

这会告诉系统在您的 url 中获取 prod= 的值,如果找不到,则使用“1”作为默认值。

这不是理想的答案,有很多理由在没有适当过滤的情况下不以这种方式访问​​ $_GET/$_POST 变量。我留给你研究。

你做的相反,应该是

<?php if ($prod == "1") { ?>

    <script type="text/javascript">
    $(document).ready(function(){
         var a = 'PD1';
         alert(a);
        $('#product1').modal('show');
    });
    </script>

<?php } elseif ($prod == "2") { ?>

    <script type="text/javascript">
    $(document).ready(function(){
          var a = 'PD2';
          alert(a);
          $('#product2').modal('show');
    });
    </script>

<?php } ?>