同时在下面提交:
它给我警报为“嘿”;
但是在下面提交时:
它什么也没提醒。
PHP代码:
$text = htmlspecialchars($_POST['tval']);
echo "<script>alert('".$text."');</script>";
HTML代码:
<textarea cols="40" rows="5" type="text" name="tval" placeholder="Type Here..." required></textarea>
问题是您的javascript代码中有换行符,因此会产生错误。您可以检查开发人员控制台(F12)以查看错误是什么。但是,这应该可以解决问题:
$text = htmlspecialchars($_POST['tval']);
echo "<script>alert('". json_encode($text) ."');</script>";
json_encode是将字符串中的换行符转换为\ n格式的快速简便的方法,警报框支持。看到这里:
https://www.w3schools.com/js/tryit.asp?filename=tryjs_alert2
更新: See demo here
Update 2:确保仅在提交表单时才运行此代码段,并且在POST中设置了“ tval”,否则将收到警告,PHP会将空值解释为null 。示例:
if(isset($_POST['tval'])) {
$text = htmlspecialchars($_POST['tval']);
echo "<script>alert('". json_encode($text) ."');</script>";
}
您可以使用模板文字来用新行写字符串:
$text = htmlspecialchars($_POST['tval']);
echo "<script>alert(`".$text."`);</script>";
根据您的评论:
您可以使用split()
和map()
为不同的行获得不同的警报:
//var text = `<?php echo $text;?>`
var text = `firstline
secondline
thirdline`; //example text for snippet
text.split("\n").map((line)=>{
alert(line);
});