【发布时间】:2012-11-23 18:49:48
【问题描述】:
我有一个生成变量的 php 文件,我希望将变量放入一个 javascript 函数中,该函数由主页上的 onclick 调用。这可以从 PHP 发送到 javascript 吗?
【问题讨论】:
-
每次点击后是否需要不同(例如,产生当前服务器端时间的脚本)?如果是这样,您可能需要Ajax。
标签: php javascript post get
我有一个生成变量的 php 文件,我希望将变量放入一个 javascript 函数中,该函数由主页上的 onclick 调用。这可以从 PHP 发送到 javascript 吗?
【问题讨论】:
标签: php javascript post get
您可以执行以下操作:
<script type='text/javascript'>
document.body.onclick(function(){
var myVariable = <?php echo(json_encode($myVariable)); ?>;
};
</script>
【讨论】:
js 文件中的函数内部使用时,这将给出“Unexpected token '<'”。
只写:
<script>
var my_variable_name = "<?php echo $php_string; ?>";
</script>
现在它可以在上述代码下方的任何位置以 my_variable_name 的名称作为 JavaScript 变量使用。
【讨论】:
您的 JavaScript 必须在 PHP 解析文件中定义。
例如,你可以在 index.php 中放置
<?php
$time = time();
?>
<script>
document.write(<?php echo $time; ?>);
</script>
【讨论】:
如果我对您的理解正确,您应该可以按照以下方式进行操作:
function clicked() {
var someVariable="<?php echo $phpVariable; ?>";
}
【讨论】:
一个很好的选择是使用 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 函数中执行。起初看起来有点奇怪,但它确实有效。
【讨论】:
您可以将 PHP 值传递给 JavaScript。 PHP 将在服务器端执行,因此将计算该值,然后您可以将其回显到包含 javascript 的 HTML。然后,javascript 将在客户端浏览器中执行,并使用 PHP 在服务器端计算的值。
<script type="text/javascript">
// Do something in JavaScript
var x = <?php echo $calculatedValue; ?>;
// etc..
</script>
【讨论】: