根据PHP url变量显示特定的模式


Show specific modal depending on PHP url variable

如何根据php中url中修改的变量显示特定的模态

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

我有一个包含几个情态的页面,每个情态对应一个产品。我需要从网站的其他部分的链接去页面"products.php",并自动显示所需的产品。

例句:

href="products.php?prod=1"

到目前为止,我只成功地在加载页面时显示模态,但如果我添加或更改变量,它没有效果,根本不工作。

这是我的:

开头

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

然后是有标识符的模态

<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 } ?>