如何将点击的电影海报名称传递至下一个PHP页面?
电影海报点击传递名称到下一页的PHP实现方法
方法一:不用form,通过GET参数传递
直接给海报图片包裹<a>标签,把电影名称作为URL参数传递到详情页:
<!-- 首页的海报代码 --> <a href="movie_detail.php?name=<?php echo urlencode('复仇者联盟'); ?>"> <img src="avenger_poster.jpg" alt="复仇者联盟海报"> </a> <a href="movie_detail.php?name=<?php echo urlencode('星际穿越'); ?>"> <img src="interstellar_poster.jpg" alt="星际穿越海报"> </a>
在详情页movie_detail.php中获取参数:
<?php // 先判断参数是否存在,避免报错 if (isset($_GET['name'])) { // 解码URL编码的名称,防止中文乱码 $movie_name = urldecode($_GET['name']); echo "你选择的电影是:" . $movie_name; } else { echo "请选择一部电影"; } ?>
注意:用urlencode处理电影名称,避免特殊字符导致URL解析错误,获取时用urldecode还原。
方法二:用form表单,通过POST传递
给每个海报单独创建表单,把电影名称放在隐藏字段里,点击海报提交表单:
<!-- 首页的海报代码 --> <form action="movie_detail.php" method="post"> <input type="hidden" name="movie_name" value="复仇者联盟"> <!-- 把按钮样式改成无边框无内边距,看起来就是点击图片提交 --> <button type="submit" style="border: none; padding: 0; background: transparent;"> <img src="avenger_poster.jpg" alt="复仇者联盟海报"> </button> </form> <form action="movie_detail.php" method="post"> <input type="hidden" name="movie_name" value="星际穿越"> <button type="submit" style="border: none; padding: 0; background: transparent;"> <img src="interstellar_poster.jpg" alt="星际穿越海报"> </button> </form>
在详情页movie_detail.php中获取POST参数:
<?php if (isset($_POST['movie_name'])) { $movie_name = $_POST['movie_name']; echo "你选择的电影是:" . $movie_name; } else { echo "请选择一部电影"; } ?>
你之前的问题原因
图片的ID属性不会被自动提交到服务器,POST/GET只能获取表单元素(input、button等)的name属性对应的值,所以直接通过ID获取是无效的。
内容的提问来源于stack exchange,提问作者yash
相关产品推荐
相关产品推荐

