我想根据用户数据(姓氏)操作页面上的元素。我构建了一个表单,并使用post将输入数据更新到php页面。我的想法是将$_POST值放入DOM:然后在JQuery:中抓取
表单页面:
<form action="display.php" method="post">
<input type="text" name="test" />
<input type="submit" value="go!!" />
</form>
Display.php
<?php
//store post value in var
$var = $_POST['test'];
?>
(html以上)
<body>
<?php
echo '<form action="" method="">';
echo '<input type="hidden" class="grab" name="name1" value="' . $_POST['test'] . '">';
echo '</form>';
?>
<script type="text/javascript" src="js/script.js"></script>
</body>
(html)
script.js
var grab = $('input.grab').val();
document.write(grab);
我是一个PHP新手,意识到我是作为客户端开发人员而不是服务器端开发人员来解决所有问题的。我是不是做错了什么?或者有更好的方法
没关系。因为JavaScript是一种客户端语言,所以这是一种完全可以接受的方法,可以让JavaScript访问只对服务器可用的变量。
你也可以使用类似的东西:
<script>
var myVar = '<?php echo $_POST['var']; ?>';
console.log(myVar);
</script>
为了防止XSS并避免POST数据中的引号问题,您应该使用htmlspecialchars:来清除输出
<script>
var myVar = '<?php echo htmlspecialchars($_POST['var'], ENT_QUOTES, 'utf-8'); ?>';
console.log(myVar);
</script>
否则,$_POST['var']='example
将破坏JS并打开XSS漏洞。