我想使用JavaScript(客户端脚本)访问PHP(服务器端文件变量)而不使用MySQL。例如我有$ name = Tom;如何在JavaScript中访问此$ name变量?请显示代码示例,因为我是编程新手。谢谢。
答案 0 :(得分:6)
您可以执行类似
的操作<script>
php_variable = <?= json_encode($php_variable) ?>;
</script>
甚至可以让你做数组和可能的对象。但它需要PHP 5.2或更高版本。如果您在没有json_encode
的情况下被卡住了,可以在调用addslashes
时引用引号,但这不会让您执行数组等操作。
如果您的意图是在某种形式下设置值,您可以这样做
<input type="text" name="stuff" value="<?= htmlentities($stuff) ?>">
当然,如有必要,您可以在脚本中访问该元素的值。
这里有两个要点:
由于PHP正在生成页面,因此它可以随意输出内容 - 甚至可以在<script>
元素的中间输出。您可以使用它将变量从服务器传输到客户端,但反之亦然。 (转移客户变量......好吧......这实际上需要XHR或表单提交。)
但总是*逃避从PHP到任何地方的东西 - 特别是如果它进入HTML,JS或直接进入SQL。除非您的服务器设置为全部延迟(例如启用魔术引号),否则PHP将获取原始数据,并且它可能具有特殊字符,这将导致其中一个或所有字符中断。
*好的,不是相当总是。如果您有一个包含某些HTML或JS的PHP变量,您希望将输出为 HTML / JS,那么请不要将其转义。但是你应该知道“XSS”的含义,并且不要盲目输出用户提供的数据。
答案 1 :(得分:-3)
由于javascript是客户端而php是服务器端,因此您需要使用ajax(javascript)来访问服务器端会话变量(php)。我建议研究jquery的ajax框架。
答案 2 :(得分:-6)
你可以做这么简单的事情。
function reset1()
{
//document.frmadd.intFaqCategoryTypeID.value='1';
document.frmadd.reset();
document.frmadd.intChatRoomCategoryId.value='<?php echo $intChatRoomCategoryId ; ?>';
document.frmadd.intEventId.value='<?php echo $intEventId ; ?>';
document.frmadd.intGroupId.value='<?php echo $intGroupId ; ?>';
document.frmadd.intMemberID.value='<?php echo $intAddedByMemberId ; ?>';
return false;
}