我尝试了许多不同的堆栈解决方案来解决类似的问题,但没有一个能够解决我将HTML和PHP混合在一起,如果点击下载图像链接,PHP代码会在下载前检查是否同意使用条款。如果他们同意并点击"下载您的图片"链接,它应该自动下载。如果他们未同意,则应弹出警报。
以下是可用的HTML复选框代码:
<form method="post">
<input type="checkbox" name="terms" value="yes" id="agree" /> I have read and agree to the Terms and Conditions</br>
<button type="submit">test_post</button>
</form>
这是HTML href下载链接(用PHP识别文件):
<a href="<?php echo $new_image_with_overlay; ?>" download="<?php echo $new_image_name; ?>">Download Your Image</a>
这是我的PHP if语句(如果我把HTML放在一个href中,它可以正常工作):
<?php
if(isset($_POST['terms'])){
// the HTML a href or similar would go here to automatically download the image
} else {
// would like an alert presented to the user
echo "alert('Please indicate that you have read and agree to the Terms of Use')";
}
?>
我试过的另一个选项,我无法开始工作,但更愿意选择&#34;下载你的图像&#34;一个按钮而不是一个链接。要么适合这个。
答案 0 :(得分:1)
如果您只想将链接置于isset
条件中,则可以执行以下操作:
<?php
if(isset($_POST['terms'])){
echo "<a href=".$new_image_with_overlay." download=" .$new_image_name.">Download Your Image</a>";
} else {
$message = "Please indicate that you have read and agree to the Terms of Use";
echo "<script type='text/javascript'>alert('$message');</script>";
}
?>
你的alert()
不会起作用,因为它混合了服务器和客户端代码,但我在上面添加它的方式应该适合你,因为脚本会在输出时触发。
希望这有帮助!
答案 1 :(得分:0)
这应该在这里工作:
if(isset($_POST['terms']) && $_POST['terms'] == "yes"){