将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 '<'
”。【参考方案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 变量名为 username
和 password
:
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 主文档中的 <script type="text/javascript"></script>
标记中,或者您可以将 <?php include "my_javascript_stuff.js"; ?>
放在 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函数