2010-09-14 98 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