2016-07-21 146 views
0

通常我可以從不同的PHP文件讓PHP變量聲明如下:PHP無法訪問聲明的變量

$myVar = 'hello'; 
require 'header.php' 

所以後來在header.php中我可以使用$ myVar的。但我無法訪問我在jquery中加載ajax的變量。例如:

的index.php:

<html> 
<body> 
    <div id="myDiv"></div> 
</body> 
</html> 

在腳本中,我有:

$(#myDiv).load('newPage.php') 

newPage.php:

$ myLoadedVar = '裝載變種';

但是後來我無法從index.php訪問$ myLoadedVar,是否可以這樣做,或者您無法訪問使用ajax創建的php變量?

+0

是的,這不是它是如何工作的,你可以回顯出將填充div的東西,但你不能以這種方式訪問​​php變量。 – cmorrissey

+0

不,你不能在JavaScript中創建PHP變量... – JimmyB

+0

@JimmyB好吧,我的意圖不是創建變量。我正在使用ajax動態填充來自數據庫的值的列表。問題是我使用查詢並將值保存在一個php變量中。我想稍後使用該變量,因此我不必再次查詢數據庫。有沒有辦法做到這一點 ? – FraK

回答

1

PHP是服務器端語言,而JavaScript是客戶端語言。將PHP數據轉換爲JavaScript的唯一方法是以某種方式輸出數據。如果你想要完整的輸出,只需要回顯它。如果你想將一堆簡單的PHP變量加載到JavaScript中,你可以將需要JS知道的所有變量添加到數組中,然後json_encode

$firstName = 'John'; 
$lastName = 'Doe'; 
$outputArray = array('firstName' => $firstName, 'lastName' => $lastName); 
echo json_encode($outputArray); 

然後,當一個Ajax功能,可以檢索這個數據作爲一個對象,你可以在JavaScript中使用result.firstName

雖然傳遞複雜的項目是不可能的,例如那些將數據庫連接作爲屬性的項目。

+0

這不完全是我想要的。我只是使用ajax來加載一個PHP文件,並且我想使用ajax在php文件中加載的php文件中定義的變量,我不想將它用於JS。 – FraK

+0

當你說加載時,你希望通過AJAX調用正確加載PHP代碼?正如蘭曼所說,這是不可能的。正在發生的事情是,AJAX調用正在從PHP中加載呈現的位(假設你正在渲染某些東西,例如:echo語句或者可能是html代碼的混合...)。換句話說,你不能通過AJAX訪問PHP文件中定義的變量,至少是以你所要求的形式。那有意義嗎? – jasonlam604

+0

是的,它更有意義,所以AJAX只會輸出正在加載的php文件的回顯部分,加載完成後所有變量和其他所有內容都將丟失? – FraK