如何从JavaScript中访问PHP变量?

时间:2011-10-09 17:05:33

标签: php javascript interop

我想使用JavaScript(客户端脚本)访问PHP(服务器端文件变量)而不使用MySQL。例如我有$ name = Tom;如何在JavaScript中访问此$ name变量?请显示代码示例,因为我是编程新手。谢谢。

3 个答案:

答案 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;
}