2014-02-17 37 views
1

我是PHP的新手,我試圖完成一些相對簡單的事情。我試圖讓PHP從MySQL讀取數據並將其繪製在Web界面上。主腳本(index.php)中的代碼查詢MySQL並將兩個數值數組讀入兩個php變量$ x和$ y。數據加載後,可以使用AJAX將其繪製在index.php上。用戶可以點擊一個按鈕(html),其中的onclick事件使用AJAX加載另一個PHP腳本,將執行所需的情節。我有義務將繪圖代碼(對於幾種類型的繪圖)添加到單獨的文件中,而不是作爲index.php中的函數,因爲AJAX和onclick事件只能加載服務器上的另一個文件(例如php文件),而不能一個php函數在變量是(index.php)的同一個文件中。因此,執行繪圖的php腳本無法訪問變量$ x和$ y,因爲它們是在index.php中聲明的。我正在尋找一種方法來使變量$ x,$ y(在index.php中聲明)可以從AJAX調用的不同繪圖腳本訪問。如何在不使用include的情況下從不同的PHP腳本訪問變量()

我嘗試聲明爲靜態和全局,但它們($ x和$ y)在繪圖腳本中保持不可見。很明顯,我不能在繪圖腳本中導入index.php,也不能從文件中讀寫$ x和$ y。我嘗試使用JavaScript函數,它將使用document.write()在onclick中包含繪圖代碼,長話短說,它也不起作用,並且我一直無法在互聯網上找到解決方案。

<?php 

//loading data from mysql 
$x = ... //$x and $y are declared here 
$y = ... 

//basicplot.php is unable to access $x and $y 
echo "<button type=\"button\" onclick=\"loadXMLDoc('basicplot.php', 'mydiv')\">Plot data</button>"; 
echo "<div id=\"mydiv\"><br>[plot goes here]</div>"; 

?> 

注:繪製不工作時,我從basicplot.php代碼複製到的index.php但因爲我想有很多類型的地塊,這不是一個真正的選擇。

+0

使用GET或POST方法在AJAX請求中傳遞您的$ x和$ y值,以便您的劇情腳本可以知道它們。 – Alyas

回答

2

PHP代碼在一個請求中運行到服務器沒有任何連接到另一個請求。您需要再次從數據庫獲取數據,或者在index.php上輸出變量,並在執行AJAX請求時將該數據發佈到第二個php文件。

-4

將變量定義爲全球:

global $x, $y; 

那麼他們在包括文件訪問;

+0

OP明確聲明他們沒有在其他文件上使用include()。由於其他文件並未作爲該請求的一部分運行,因此全局將不會產生任何影響。 – Anigel

+1

不要使用全局變量http://stackoverflow.com/questions/12445972/stop-using-global-in-php – burzum

1

以最基本的方式,加載basicplot.php?x=$x&y=$y,它傳遞查詢字符串中的數據,然後在basicplot.php中使用$_GET['x']$_GET['y']來獲取傳遞的值。

1

嘗試通過GET方法向腳本發送$x$y。並通過$_GET[]將它們寫入腳本。

相關問題