在php页面中使用echo在javascript中设置值

在php页面中使用echo在javascript中设置值,javascript,php,Javascript,Php,我已经从PHP中的用户输入中检索到一个变量,并希望在另一种形式中用作默认值,如下所示: $username = sanitizeFormUsername($_POST['username']); echo'<script>document.getElementById("loginUsername").value ='.$username.' </script>'; 但它不起作用。请告诉我如何在PHP页面中使用PHP变量设置元素的值。谢谢PHP是一种

我已经从PHP中的用户输入中检索到一个变量,并希望在另一种形式中用作默认值,如下所示:

$username = sanitizeFormUsername($_POST['username']);
echo'<script>document.getElementById("loginUsername").value ='.$username.' </script>';

但它不起作用。请告诉我如何在PHP页面中使用PHP变量设置元素的值。谢谢

PHP是一种模板语言,它有一个很好的echo快捷方式。为什么不好好利用呢?您根本不需要JavaScript,而是可以使用PHP执行以下操作:

<?php
  $username = sanitizeFormUsername($_POST['username']);
?>    
<!DOCTYPE html>
    ...
<input id="loginUsername" value="<?=$username?>">

简短回答:交换单引号和双引号

<input type="text" id='loginUsername'>

<?php
$username = "abc";
echo"<script>document.getElementById('loginUsername').value ='$username'</script>";

都是一样的

来自PHP官方网站
注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列出现在单引号字符串中时不会展开。

为什么在php后端而不是javascript前端执行此操作?检查拼写,JS区分大小写,回显行包含多个拼写错误。此外,PHP变量不是在单引号内提取的,如果$userName是字符串,则必须在JS中正确引用。最重要的是,内联脚本是一种不好的做法,而用PHP进行分叉更糟糕。Document.getElementByidloginUsername.value=Steve在您看来像是有效的JS吗?什么是Document?js字符串周围需要的引号也会更新代码。请检查一下。记住JavaScript是区分大小写的,为了测试,我使用$username=abc;您可以使用$username=sanitizeFormUsername$\u POST['username'];
$abc = 'qwerty/' . $name;
$abc = "qwerty/$name";