2012-04-06 59 views
1

我的網頁允許用戶從下拉列表中選擇項目並有一個表格。 Javascript會在JavaScript創建的新表格行中打印出每個dropdown-list-item(加上javascript從XML文件中提取的額外信息)。php如何引用當前文檔?

我希望能夠將表信息寫入磁盤。 如果我使用Javascript,我會使用document.getElementByID(「table」)來解析節點,並將該信息放入我可以編寫的變量中。但是,我發現大多數文檔都說Javascript不用於寫入磁盤。所以,我認爲我應該使用PHP。

什麼是Javascript的'文檔'對象的PHP等價物? 在Javascript中,我不需要定義任何新的對象來使用它,我可以隨時使用'文檔'。 我想在PHP中我必須使用新的DOMDocument。然後加載該html。

大部分的php例子顯示loadHTML(string)和loadHTMLFile(); 我不想從我在標籤內寫入的字符串加載HTML。 而且我不想從.htm文件加載HTML,因爲這是原始文件,而且Javascript已經根據用戶的下拉菜單中的選擇更改了用戶的文件。

我想使用php訪問當前文檔的元素。 那麼,php如何參考當前文檔呢?

我正在瀏覽的網頁是http://music.collwyncraig.info/hajimama/setlist.htm

+4

PHP不*運行在瀏覽器中。它經常運行在web服務器上,或作爲獨立程序運行。如果某個PHP程序可以獲取網頁,它可以解析並將其寫入磁盤,但這與從瀏覽器中運行無關。 – wallyk 2012-04-06 06:46:50

+0

我想我開始明白這一點。那麼,我可以使用什麼來從瀏覽器中運行的頁面(HTML DOM)獲取信息並將其發回服務器,以便將其保存在服務器上的文件中? – collwyn 2012-04-06 07:16:13

回答

1

我覺得你對架構的想法是錯誤的。編程語言是如何相互交互的方式。

  • PHP是一種預處理,併產生 - U什麼都想要 - 通常是HTML,包含JavaScript,CSS和什麼...
  • JavaScript是在生成的HTML文件或ajax調用交互的動態語言即提供HTML,JavaScript中,CSS或任何需要的其他服務
  • 和HTML - 這是顯示,並且可以在運行時通過JavaScript中使用CSS等風格的過程中被修改的文檔對象...

所以當你打電話給你的文件的JavaScript函數 - 基本的PHP已經完成了它的工作。

不是將所有生成的內容從php直接打印到屏幕上,而是可以先將它存儲在var中。

例如:

$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>"; 

所以用,你可以做以下打印在屏幕上:

print "myContent"; // and it is shown on the screen 

$myFile = "testFile.html"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>"; 
fwrite($fh, $myContent); 
$myContent = "Whatever2"; 
fwrite($fh, $myContent); 
fclose($fh); 

所以你的文件的內容將是:

<html><head>...</head><body><h1>Whatever...</h1></body>Whatever2 

這個生成的文檔然後可以調用loadHTML或以您想要的 想要的方式使用。

這只是暗示你可以思考的方向 - 有很多種解決方法 - 所以不知道更多關於你真正想要的東西 - 要提出一個合適的解決方案並不容易。

+0

謝謝。目前,用戶可以通過從下拉菜單中選擇項目來在我的網頁上構建表格。 Javascript根據他們在下拉菜單中的選擇構建這張表。我想要一個按鈕,用戶可以單擊將其創建的表保存到文件中。 因此,我需要訪問瀏覽器中當前頁面的DOM,並將其發送回服務器並將其寫入文件中。對? 我可以使用Javascript來訪問瀏覽器中當前頁面的DOM。我可以使用PHP將某些東西寫入服務器上的文件中。我不知道如何連接這兩個動作。 – collwyn 2012-04-06 07:23:53

+0

你想把它存儲在服務器上?那麼 - 如果你可以訪問文檔 - 那麼只需通過參數存儲它就像上面提到的那樣將它的內容發送到一個php文件。 $ mycontent = $ _POST ['theDocument'] - 可以通過javascript由ajax調用。 – 2012-04-06 07:36:09

0

$_SERVER['SCRIPT_NAME']主文件。

__FILE__的完整路徑這被稱爲文件。

PHP沒有像jQuery那樣的內置'DOM Manipulator - html輸出通常是通過您選擇的某個模板引擎或手動生成的。 如果你想DOM操作如jQuery,你可能會想嘗試PHPQuery

http://code.google.com/p/phpquery/

相關問題