将PHP变量发送到javascript函数[重复]

Posted

技术标签:

【中文标题】将PHP变量发送到javascript函数[重复]【英文标题】:Send PHP variable to javascript function [duplicate] 【发布时间】:2012-11-23 18:49:48 【问题描述】:

我有一个生成变量的 php 文件,我希望将变量放入一个 javascript 函数中,该函数由主页上的 onclick 调用。这可以从 PHP 发送到 javascript 吗?

【问题讨论】:

每次点击后是否需要不同(例如,产生当前服务器端时间的脚本)?如果是这样,您可能需要Ajax。 【参考方案1】:

您可以执行以下操作:

<script type='text/javascript'>
    document.body.onclick(function()
        var myVariable = <?php echo(json_encode($myVariable)); ?>;
    ;
</script>

【讨论】:

如何指定我从哪个 php 文件中获取变量? 为什么需要 json_encode ?为什么不简单地回显 $myVariable ? @George02 json_encode 将转义字符串,以便在您的javascript中安全使用 当在单独的 js 文件中的函数内部使用时,这将给出“Unexpected token '&lt;'”。【参考方案2】:

只写:

<script>
    var my_variable_name = "<?php echo $php_string; ?>";
</script>

现在它可以在上述代码下方的任何位置以 my_variable_name 的名称作为 JavaScript 变量使用。

【讨论】:

【参考方案3】:

您的 JavaScript 必须在 PHP 解析文件中定义。

例如,你可以在 index.php 中放置

<?php
$time = time();
?>
<script>
    document.write(<?php echo $time; ?>);
</script>

【讨论】:

【参考方案4】:

如果我对您的理解正确,您应该可以按照以下方式进行操作:

function clicked() 
    var someVariable="<?php echo $phpVariable; ?>";

【讨论】:

你需要用分号结束 @username 待定 我是否必须将整个 php 文件放在括号内?如果没有,我将如何指定变量来自哪个 php 文件?【参考方案5】:

一个很好的选择是使用 jQuery/AJAX。 Look at these examples 并在您的服务器上试用它们。在此示例中,在 FILE1.php 中,请注意它传递了一个空白值。如果你愿意,你可以传递一个值,它可能看起来像这样(假设 JavaScript 变量名为 usernamepassword:

data: 'username='+username+'&password='+password,

在 FILE2.php 示例中,您可以像这样检索这些值:

$uname = $_POST['username'];
$pword = $_POST['password'];

然后进行 mysql 查找并返回值:

echo 'You are logged in';

这会将消息You are logged in 传递给FILE1.php 中的成功函数,并且消息字符串将存储在名为“data”的变量中。因此,成功函数中的alert(data); 行会提醒该消息。当然,你可以echo 任何你喜欢的东西,甚至是大量的 html,比如整个表格结构。

Here is another good example 进行审核。

方法是创建表单,然后使用 jQuery 检测按钮按下并通过 AJAX 将数据提交到辅助 PHP 文件。上面的例子展示了如何做到这一点。

辅助 PHP 文件接收变量(如果已发送)并返回响应(无论您选择发送什么)。然后,该响应会在您的 AJAX 调用的 Success: 部分中显示为“数据”(在这些示例中)。

jQuery/AJAX 代码是 javascript,因此您有两种选择:您可以将其放在 PHP 主文档中的 &lt;script type="text/javascript"&gt;&lt;/script&gt; 标记中,或者您可以将 &lt;?php include "my_javascript_stuff.js"; ?&gt; 放在 PHP 文档的底部。如果您使用的是 jQuery,请不要忘记在给出的示例中包含 jQuery 库。

在您的情况下,听起来您几乎可以复制我建议的第一个示例,不发送数据并在 AJAX 成功函数中接收响应。但是,无论您需要对这些数据做什么,都必须在 success 函数中执行。起初看起来有点奇怪,但它确实有效。

【讨论】:

【参考方案6】:

您可以将 PHP 值传递给 JavaScript。 PHP 将在服务器端执行,因此将计算该值,然后您可以将其回显到包含 javascript 的 HTML。然后,javascript 将在客户端浏览器中执行,并使用 PHP 在服务器端计算的值。

<script type="text/javascript">
    // Do something in JavaScript
    var x = <?php echo $calculatedValue; ?>;
    // etc..
</script>

【讨论】:

以上是关于将PHP变量发送到javascript函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取 Javascript 变量并将其传递给 PHP 函数 [重复]

在Codeigniter中将javascript变量从视图发送到控制器[重复]

使用html中的按钮onclick将php数组发送到javascript函数

将变量从 PHP 获取到 JavaScript [重复]

使用 jquery ajax 将 javascript 数组变量发送到 php 脚本(获取字符串作为输出而不是数组)

将数据从 javascript forEach 循环中的 php 数组发送到 ajax 调用的 url