使用PHP的textarea值的Javascript警报框

问题描述 投票:0回答:2

同时在下面提交:

“

它给我警报为“嘿”;

但是在下面提交时:

“

它什么也没提醒。

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 php textarea alert
2个回答
0
投票

问题是您的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>";
}

0
投票

您可以使用模板文字来用新行写字符串:

$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);
});
© www.soinside.com 2019 - 2024. All rights reserved.