2010-09-14 94 views
0

我有一个JavaScript变量,其中包含一些信息,我希望分配一个PHP变量。这里是我正在使用的:如何为JavaScript变量分配一个JavaScript变量?

<script type="text/javascript"> 
function redirectToFacebook() 
{ 
    var facebookMessage = encodeURI(document.getElementById('txt_msg').value); 
} 
</script> 

<?php 
    $_SESSION['sess_facebook_message'] = facebookMessage; 
?> 

任何帮助真的appriciable。

在此先感谢

+13

你在这里有一个误解。 Javascript在浏览器中运行很久之后,PHP已经提供了文档,因此不可能像这样将变量从JS分配给PHP。你需要解释你想做什么,这样有人可以建议一个解决方法 – 2010-09-14 12:43:02

+0

为什么你不使用AJAX? – fabrik 2010-09-14 12:44:19

+0

还是'document.cookie'? – gnarf 2010-09-14 12:46:50

回答

-1

可能是你可以尝试用JavaScript重定向和传递变量形成的PHP JS。他们没有办法,它不能工作。

可能是,我真的不舒服 试试这个。

<?php 
function redirectToFacebook() { 

var facebookMessage = ?> 
<script> 
    document.write(encodeURI(document.getElementById('txt_msg').value)); 
</script> 
<?php 
} 
?> 

或使用cookies。

+2

对不起,随着PHP的运行,然后发送页面,然后JavaScript运行,这将无法按预期工作。 – 2010-09-14 12:50:20

2

由于PHP在服务器上运行,并且在客户端运行JavaScript,所以在JavaScript使用它之后无法设置PHP会话变量,因为PHP在页面发送之前已经执行完毕。

但是......

如果使用JavaScript做一个请求(AJAX,imagehack或其他方式)的PHP脚本设置变量,就可以了。

例如...

的JavaScript:

function something() { 
    // do something with somevar 
    somevar = 'content'; 
    // make an AJAX request to setvar.php?value=content 
}

PHP:

$_SESSION['somevar'] = $_GET['somevar'];

确保你把客户端产生的数据的安全问题考虑在内,虽然。

0

如果你想从浏览器(JavaScript的)到后端服务器(PHP)传递变量,你需要:

1)负载编码或者作为POST的Javascript参数的新页面或GET 2 )异步调用PHP脚本(AJAX调用)编码参数,POST或使用GET请求(您只需添加您的URL参数)GET

一个简单的例子:

<script> 
    window.location = '/some-url?' + document.getElementById('text_msg').value; 
</script> 

你可能想分配s的一段代码到一个按钮或...

0

你试图实现是不可能的,由于API的限制。它没有提供这一点。

+0

好..好像我没有选择离开。 – Shampa 2010-09-14 13:32:29

+0

Shampa ...你在php变量中的下一步是什么?有时我使用javascript设置隐藏的的值,这使得通过POST或GET将表单或通过AJAX发送该值到PHP脚本变得更容易......只是一个念头。 – d2burke 2010-09-14 13:56:41

+0

我没有看到任何API与它有什么关系。 – 2011-07-19 08:20:47