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

时间:2015-09-17 19:04:36

标签: php jquery twitter-bootstrap url modal-dialog

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

我使用自适应框架Bootstrap。

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

E.g:

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>

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

你正在做相反的事情,应该是

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