2011-11-19 104 views
36

可能重複:
How to pass JavaScript variables to PHP?發送JavaScript變量PHP變量

首先我認爲我不得不JavaScript的轉換爲PHP,但後來我發現,我不能服務器,因爲和客戶端執行。所以,現在我只是想一個變量

<script type="text/javascript"> 
function scriptvariable() 
{   
    var theContents = "the variable"; 
} 
</script> 

發送到PHP變量

<?php 
$phpvariable 
?> 

中的JavaScript函數執行時,讓我們說我點擊一個按鈕。

現在我不知道如何將該phpvariable分配給javascript一個使用phpvariable查找我的數據庫中的東西。 我知道我可以將它添加到我的網址或一些東西並刷新頁面..但我想用AJAX做,因爲我可能必須在我的網頁中進一步使用此Ajax方法...

因此有沒有簡單的方法來做到這一點,而不必轉儲頁面上的代碼頁面做一件簡單的事情?

+1

你看過jQuery實現ajax嗎?它處理大部分亂碼/工作。 – Bryan

+0

我完全不知道jQuery是什麼......不幸的是,谷歌,並試圖找出更多關於這一點。 – mrbunyrabit

+4

@Bryan使用庫之前,請學習如何去做。拿到茶杯後應該加糖。 – Zirak

回答

41

喬丹已經說過您必須在服務器可以處理該值之前將javascript變量回發到您的服務器。要做到這一點,你可以編寫一個提交表單的javascript函數 - 或者你可以使用ajax/jquery。 jQuery.post

也許最適合你的最簡單的方法是這樣的

function myJavascriptFunction() { 
    var javascriptVariable = "John"; 
    window.location.href = "myphpfile.php?name=" + javascriptVariable; 
} 

在您myphpfile.php可以使用$_GET['name']被執行你的JavaScript後。

Regards

+4

* easy *方法通常也是不正確的方法。 – rlemon

+2

先生,YOUr回答爲我工作!謝謝! 我犯了錯誤插入你的腳本就像那樣(沒有函數出於某種原因),所以馬頁面就像野獸一樣刷新。 但我把它添加到一個函數就像你有它,它的工作! 謝謝! – mrbunyrabit

+1

沒問題 - 但一定要保護您的網站免受跨站點腳本/攻擊。對你來說還有一個問題:爲什麼你必須使用JavaScript來實現這種方法?你也可以使用鏈接my link - 我只是感興趣:-) – Grrbrr404

60

PHP在服務器上運行,並且Javascript在客戶端上運行,因此您無法將PHP變量設置爲等於JavaScript變量而不將值發送到服務器。但是,您可以將JavaScript變量設置爲等於PHP變量:

<script type="text/javascript"> 
    var foo = '<?php echo $foo ?>'; 
</script> 

要向PHP發送Javascript值,您需要使用AJAX。使用jQuery,它會是這個樣子(最簡單的例子可能):

var variableToSend = 'foo'; 
$.post('file.php', {variable: variableToSend}); 

在您的服務器,你就需要接收在後發送的變量:

$variable = $_POST['variable']; 
+2

爲什麼downvote?這是一個很好的答案... –

+3

這個答案有什麼問題? –

+1

我知道我做錯了什麼....我只是不知道什麼... 這就是我如何插入此代碼 ''' '' 然後我得到這個錯誤,這是一個不確定的變量... 注意:未定義指數:變量(PHP的支架) 任何想法什麼即時做錯了什麼? – mrbunyrabit

3

這取決於你的頁面的行爲方式。如果你想這是異步發生的,你必須使用AJAX。在谷歌上試用「jQuery post()」來找到一些內容。

在其他情況下,當用戶提交表單會出現這種情況,你可以在隱藏字段發送變量或追加?variableName=someValue"到結束,然後您打開的URL。:

http://www.somesite.com/send.php?variableName=someValue 

http://www.somesite.com/send.php?variableName=someValue&anotherVariable=anotherValue 

這樣一來,從PHP你可以訪問此值:

$phpVariableName = $_POST["variableName"]; 

使用POST方法或形式:

$phpVariableName = $_GET["variableName"]; 

爲使用GET方法或附加的形式我上面提到的url方法(querystring)。

+1

爲什麼downvote幾乎每個答案?如果你看後的時間,你可以看到,可能我們都開始在同一時間寫作。我認爲一些答案是非常好的,因爲傑爾丹布朗答案中的瑕疵。 – rcdmk

+0

要求OP「安裝」並使用jQuery進行簡單的AJAX調用。 – PeeHaa

+0

爲什麼不呢?嘗試向新用戶解釋如何在不到一頁的情況下在純JavaScript中執行交叉瀏覽器AJAX調用。 – rcdmk