2012-12-05 227 views
8

我有一个PHP文件,生成一个变量,我想变量被放入一个JavaScript函数,这是由主页上的onclick调用。这是可能从PHP发送到JavaScript?发送PHP变量为JavaScript函数

+1

每次点击后它是否需要不同(例如,产生当前服务器端时间的脚本)?如果是这样,你可能需要[Ajax](https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started)。 – apsillers

回答

15

你可以做到以下几点:

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

我将如何指定从哪个php文件获取变量? – user1879926

+1

我认为你需要多学习一点php。以一个简单的教程,将告诉你如何回声的东西。尝试http://php.net/manual/en/tutorial.php –

+1

为什么有必要在那里有json_encode?为什么不简单地echo $ myVariable? – TGeorge

1

如果我理解正确的话,你应该能够沿着以下的线路做一些事情:

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

你需要用分号结束 – mplungjan

+0

@username tbd我需要将整个php文件放在括号内吗?如果不是,我将如何能够指定变量来自哪个php文件? – user1879926

4

你的JavaScript将不得不一个PHP解析的文件中定义。

例如,在index.php文件您可以这样

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

只要写:

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

现在它可以作为一个JavaScript在上面的代码下面的任何一点上都可以用名称my_variable_name来变量。

0

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

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

一个不错的选择是使用jQuery/AJAX。 Look at these examples并在您的服务器上试用它们。在这个例子中,在FILE1.php中,请注意它传递一个空白值。

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

在FILE2.php例子,你会找回这样的价值观:如果你愿意的话,这可能会是这个样子(假设JavaScript的乏称为usernamepassword你可以传递一个值

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

然后做你的MySQL查询,因此返回值:

echo 'You are logged in'; 

这将邮件传递You are logged in来苏FILE1.php中的函数ccess,并且消息字符串将存储在名为“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文档的底部放置<?php include "my_javascript_stuff.js"; ?>。如果您使用jQuery,请不要忘记像给出的示例一样包含jQuery库。

就你而言,这听起来像你可以非常反映我建议的第一个例子,在AJAX成功函数中不发送数据并接收响应。然而,无论您需要如何处理这些数据,您都必须在成功功能中进行操作。起初似乎有点奇怪,但它有效。