如何根据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>
有什么想法吗?
答案 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 } ?>