2012-12-24 172 views
-1

我正在使用ajax進行異步數據庫訪問的項目。 我值存儲在JavaScript變量如下..將變量值從javascript傳遞到php

var content=xmlhttp.responseText; 

現在是我想要的就是這個值傳遞給同一個頁面上的PHP模塊.. 請建議me..its迫切

+1

進行另一個Ajax調用來發送數據。有很多相關的問題(這個問題很多)。檢查此頁面上的右欄。 –

回答

1

你必須向另一個腳本發出單獨的AJAX請求才能實現此目的。 PHP是服務器端的,因此不能直接與客戶端交互。

0

你應該在PHP中處理數據(你指定給內容),因爲正如這裏的其他答案告訴你的那樣,PHP是服務器端,JavaScript是在客戶端上。如果您從您控制的頁面獲取此數據,而不是var content = xhr.responseText;,請在您發送數據之前修改數據。例如,如果您正在對服務器上的process.php文件進行AJAX調用,以獲取您在JavaScript中以其他方式分配給content的數據,請確保將process.php中的數據處理爲echo()數據(你是那裏面content在客戶端上)存儲:

在process.php:

// below is the normal server script which you are storing in content on the client 
// echo $result; 
// instead, we are going to operate on the data first: 
return doSomething($result); 

然後在客戶端上:

var newContent = xhr.responseText; 

而且newContent變量將包含數據你以前希望用PHP進行修改。如果您無法控制您使用AJAX調用的服務器腳本,則如上所述,您將需要使用PHP向服務器發送第二次AJAX調用,並使用$_GET$_POST來檢索該數據,然後使用然後在那裏玩。

0

我不清楚您需要將值從javascript傳遞給php。

,但我可以給你,

  1. 對你的問題的非推薦,但工作方式:
    你說,你是在第一次調用Ajax。在處理相應的服務器端php函數時,將響應值(xmlhttp.responseText的值)存儲到變量$ _SESSION變量中。最後在ajax響應處理函數中重新加載頁面(使用location.reload())。

  2. 而且對你的問題建議的方法:
    你可能已經增加了一些的if-else控制流結構中的PHP代碼,並期待獲得Ajax響應值(可惜你不能做到這一點)後執行。所以如果你確實有這樣的邏輯,那麼將這些if-else條件轉換爲相應的Javascript代碼。可能是一個JavaScript函數,並通過向其傳遞ajax響應值來調用該函數。這個新函數將使用您的ajax響應值,並通過應用必要的邏輯在網頁的某些部分進行更改。