我正在创建一个网络商店。我正在使用PHP会话导航到下一页。
程序应该做的是:当我点击一个特定的图像时,那么会话变量应该根据点击的图像相应地分配,但问题是所有的会话变量都没有点击。
这是我的代码:
<div class="col-sm-3 col-xs-6" style="text-align:center">
<a href="list.php" onclick="<?php $_SESSION['x'] = 'clothing'; $_SESSION['v1'] = 'shirts';?>" ><img class="img-responsive img-circle " src="image/0.jpg" />Clothing</a>
</div>
<div class="col-sm-3 col-xs-6" style="text-align:center" >
<a href="list.php" onclick=" <?php $_SESSION['v1'] = 'mobiles'; ?>" ><img class="img-responsive img-circle " src="image/5.jpg" />mobiles</a>
</div>
所以没有点击,移动会话变量被分配给"移动",因为它是最后声明的…
PHP代码在该页面发送到浏览器之前执行。所以你的代码在浏览器上看起来是这样的:
<div class="col-sm-3 col-xs-6" style="text-align:center">
<a href="list.php" onclick="" ><img class="img-responsive img-circle " src="image/0.jpg" />Clothing</a>
</div>
<div class="col-sm-3 col-xs-6" style="text-align:center" >
<a href="list.php" onclick="" ><img class="img-responsive img-circle " src="image/5.jpg" />mobiles</a>
</div>
和会话变量设置,就像你说的。
你不能在html中设置php变量(或执行任何其他php代码)。你能做的是:如果用户点击图片,向服务器发送一个请求,然后服务器按照你想要的方式设置会话变量。
我想实现你想要做的最简单的方法是通过在链接中添加参数:
<div class="col-sm-3 col-xs-6" style="text-align:center">
<a href="list.php?x=clothing"><img class="img-responsive img-circle " src="image/0.jpg" />Clothing</a>
</div>
<div class="col-sm-3 col-xs-6" style="text-align:center" >
<a href="list.php?v1=mobiles"><img class="img-responsive img-circle " src="image/5.jpg" />mobiles</a>
</div>
在您的list.php中,您可以通过$_GET
变量获得所有参数。
编辑:只是为了明确,我建议的解决方案不发送请求到服务器只是设置会话变量,而是提供信息到list.php,它可以用来设置会话变量