我想根据用户数据(姓氏)操作页面上的元素。我构建了一个表单,并使用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新手,并意识到我作为客户端开发人员解决了我所有的问题,而不是服务器端。我做错了什么吗?或者有更好的方式
答案 0 :(得分:1)
没关系。由于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漏洞。