2012-03-14 35 views
0

PHP是服務器端語言 - 但我目前的要求是在客戶端(瀏覽器)端語言的PHP。讓我解釋一下 - 我將有一個.html文件,它以某種方式指示加載.php文件。這個.php文件將與數據庫交互(或者創建一個動態Java腳本)。稍後,這些數據將使用PHP功能動態顯示在網頁html文件中。同樣可能嗎?你能提供一個相同的例子嗎?什麼是HTML include命令來包含一個PHP文件。PHP中的HTML

這是可能的 - 但是如果可能的話是相同的,那麼HTML標籤要做什麼呢?

讓我通過一些例子說明一下:

A.html

<html> 
<head></head> 
<body> 
<ul> 
inlude <--"phpfile.php"--> 
</ul> 
</body> 
</html> 

現在 「phpfile.php」 將有

<?php for($i=1;$i<=5;$i++){ ?> 
<li>Menu Item <?php echo $i; ?></li> 
<?php } ?> 

所以最後的HTML文件會給用戶:

•Menu Item 1 
•Menu Item 2 
•Menu Item 3 
•Menu Item 4 
•Menu Item 5 

這是我真正的要求。我必須在網頁中實現HighChart列向下鑽取圖表。現在,它是靜態生成使用JS:

參考文獻:

Example 1 Example 2

我想創建一個動態的第N級列明細Highchart。由於鑽取'數據'及其標籤假設是動態的,我需要生成一個動態JS。同樣可能通過PHP

我們有PHP安裝在我們的網絡主機和做一個AJAX調用不會解決,因爲我需要HighChart JS腳本是動態的。 AJAX調用可以給我數據,但我可以將JS腳本製作爲動態的。請參閱問題中的示例參考。它有一個'數據''鑽取'JS數組標籤供您細讀。

爲了更清楚,我補充說,需要是動態的這裏HighChart數據數組:

var colors = Highcharts.getOptions().colors, 
     categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'], 
     name = 'Browser brands', 
     level = 0, 
     data = [{ 
      y: 55.11, 
      color: colors[0], 
      drilldown: { 
       name: 'MSIE versions', 
       categories: ['MSIE 8.0', 'MSIE 6.0', 'MSIE 7.0', 'MSIE 9.0'], 
       level: 1, 
       data: [{ 
        y: 33.06, 
        drilldown: { 
         level: 2, 
         name: 'drilldown next level', 
         categories: ['a', 'b', 'c'], 
         data: [23,54,47], 
         color: colors[0] 
        } 
       }, 10.85, 7.35, 2.41], 
       color: colors[0] 
      } 
     }, { 
      y: 21.63, 
      color: colors[1], 
      drilldown: { 
       name: 'Firefox versions', 
       categories: ['Firefox 3.6', 'Firefox 4.0', 'Firefox 3.5', 'Firefox 3.0', 'Firefox 2.0'], 
       data: [13.52, 5.43, 1.58, 0.83, 0.20], 
       color: colors[1] 
      } 
     }, { 
      y: 11.94, 
      color: colors[2], 
      drilldown: { 
       name: 'Chrome versions', 
       categories: ['Chrome 10.0', 'Chrome 11.0', 'Chrome 8.0', 'Chrome 9.0', 'Chrome 12.0', 
        'Chrome 6.0', 'Chrome 5.0', 'Chrome 7.0'], 
       data: [9.91, 0.50, 0.36, 0.32, 0.22, 0.19, 0.12, 0.12], 
       color: colors[2] 
      } 
     }, { 
      y: 7.15, 
      color: colors[3], 
      drilldown: { 
       name: 'Safari versions', 
       categories: ['Safari 5.0', 'Safari 4.0', 'Safari Win 5.0', 'Safari 4.1', 'Safari/Maxthon', 
        'Safari 3.1', 'Safari 41'], 
       data: [4.55, 1.42, 0.23, 0.21, 0.20, 0.19, 0.14], 
       color: colors[3] 
      } 
     }, { 
      y: 2.14, 
      color: colors[4], 
      drilldown: { 
       name: 'Opera versions', 
       categories: ['Opera 11.x', 'Opera 10.x', 'Opera 9.x'], 
       data: [1.65, 0.37, 0.12], 
       color: colors[4] 
      } 
     }]; 

而且最終頁面將不會是一個PHP頁面,我正在尋找一種方法,使「數組'1,2,3,4 ...第N個元素JS陣列

+3

這心不是可能的。 PHP只是一種服務器端語言。如果您需要使用它,您必須將ajax請求發送回服務器。 – Undefined 2012-03-14 13:47:21

+0

你可以將表單提交給php文件或通過ajax(如Sam說的)。沒有辦法用html的擴展名來執行php。 – 2012-03-14 13:51:29

+1

@Sohail - 文件擴展名不是限制。服務器可以配置爲通過mod_php傳遞.html文件。 PHP仍然在服務器上處理,但不是客戶端。 – Quentin 2012-03-14 13:52:56

回答

4

否瀏覽器沒有PHP解釋器。

你能來最接近的是有寫在由瀏覽器(JS是理智的選擇)支持的語言任何客戶端邏輯,使HTTP請求(這是阿賈克斯)到web服務(這可以寫在PHP中)與您的數據庫交互。一旦數據返回到瀏覽器,客戶端代碼就可以執行DOM操作。

+0

嘗試查看AJAX和jQuery(用於輕鬆AJAX調用) – 2012-03-14 13:49:30

+1

有許多不是jQuery的優秀庫。我喜歡[YUI](http://developer.yahoo.com/yui/)和[這裏是一些小的,專業的](http://microjs.com/#ajax)。 – Quentin 2012-03-14 13:51:33

+1

這是真的,我只是建議jQuery,因爲我發現初學者很容易使用(不是說其他​​庫不是)。 – 2012-03-14 14:02:51

0

你不能這樣做。正如你在問題開始時所說的那樣,PHP在服務器上運行。

但是,您可以使用AJAX從您的網頁動態調用PHP腳本並顯示結果。這需要JavaScript將來自瀏覽器的請求發送回服務器。它不是帶有「加載.php文件的指令」的HTML - 這是不可能的。但是JavaScript可以作爲一箇中介從服務器端腳本獲取結果。我建議你對AJAX做一些研究,看看能否滿足你的需求。

+0

做一個AJAX調用不會解決,因爲我需要HighChart JS腳本是動態的。 AJAX調用可以給我數據,但我可以將JS腳本製作爲動態的。請參閱問題中的示例參考。它有一個'數據''鑽取'JS數組標籤供您細讀。 – Prakash 2012-03-14 14:15:45

1

這不可能按照您描述的確切方式來完成。 此外 - 我發現你的問題有點奇怪,這表明你可能不完全理解什麼是PHP或你可以用它實現什麼。

如果您只需要有一個本地系統(非公開),您可以隨時在本地機器上安裝一個php服務器以供您訪問。 如果您出於某種原因需要在地址欄上看到HTML surfix,那麼可以使PHP提供帶有* .HTML surfix的HTML文件。對用戶來說,它看起來像HTML。

話雖這麼說 - 你可以包括在HTML文件中的PHP - 但沒有服務器端就不會跑......我見過使用(但從未嘗試過)的,包括它像JavaScript

一種方法:

<script language="JavaScript" type="text/javascript" 
src="http://www.mydomain.com/html.php" 
<script> 

然後

<?php 
$ref = $_SERVER['HTTP_REFERER']; 
$ser = "Server: ". $_SERVER['SERVER_NAME'] . "Script name: ". $_SERVER['SCRIPT_NAME']; 
echo "document.write('this is php code called from HTML file:' );"; 
echo "document.write('$ref');"; 
echo "document.write('$ser');"; 
?> 

但通常是通過編輯的htaccess:

<Files yourpage.html> 
AddType application/x-httpd-php .html 
</Files> 

或單

AddType application/x-httpd-php .html 

或爲熱媒

AddType application/x-httpd-php .htm