2014-04-10 73 views
2

我想要使用簡單的HTML Dom解析器獲取div元素的值。它僅適用於硬編碼值。這是硬編碼的東西。如何從數據庫檢索值使用其獲取div的值使用php

<table> 
<tr><td class='none'><div class='drag' id='d1'>1</div></td></tr> 
<tr><td class='none'><div class='drag' id='d2'>2</div></td></tr> 
<tr><td class='none'><div class='drag' id='d3'>3</div></td></tr> 

除了這些常量值之外,我還需要根據下拉菜單中的選擇來獲取其他id值。

<form method="post" name="order" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<select id='test' name='test'> 
<option value="">Please Select</option> 
<option value='test1'>Test1</option> 
<option value='test2'>Test2</option> 
</select> 
</form> 

選擇之後,他們點擊繼續按鈕,它們重定向到同一個頁面,這裏是我的腳本,它顯示的ID從數據庫中。

<?php 
$i=4; 
if ($_SERVER['REQUEST_METHOD']=="POST") 
{ 
$query = mysql_query("select * from test_demo where test_requested='$_POST[test]'"); 
while($result=mysql_fetch_array($query)) 
{ 
echo "<tr><td class='none'><div class='drag' id='d$i'>". $result['oid'] ."</div></td></tr>"; 
$i++; 
} 
} 
echo "</table>" 
?> 

現在我想獲得訂單ID的1,2,3和剩餘的ID從數據庫中檢索。爲了得到這些值,我使用一個值按鈕點擊進入retrieve.php文件。

在retrieve.php文件中我使用簡單的html dom解析器來獲取值。這是代碼。

<?php 
include_once('simple_html_dom.php'); 
//test.php contains my hard coded html and php code 
$html = file_get_html('test.php'); 
$temp = '1'; 
        //usig div name we are retrieving the values 
      foreach($html->find('div#d5') as $e) 
     $result[]= $e->innertext; 
     print_r($result); 

?> 

代替d5,如果我可以提到d1或d2或d3。我可以分別得到值1,2,3。但我無法獲取從數據庫中檢索到的訂單ID值。這些元素的div ID從d4開始,依此類推。我哪裏可能會出錯?

+0

'file_get_html'使用GET方法,但你的腳本Ø只有在使用POST方法時才執行數據庫查詢。 – Barmar

+0

@Barmar我剛剛嘗試過使用GET方法,但仍然無法使用。 – Surya

+0

您是否已將'&test = test1'添加到URL,並將'test.php'更改爲使用'$ _GET ['test']'? – Barmar

回答

1

有幾個問題。

首先,如果您以普通文件的形式訪問它們,PHP腳本不會運行。您需要更改URL要經過服務器:

$html = file_get_html('http://localhost/path/to/test.php'); 

其次,您需要提供在URL中test參數的值,所以它應該是:

$html = file_get_html('http://localhost/path/to/test.php?test=test1'); 

第三, test.php你需要訪問使用$_GET,不$_POST,參數時,它的訪問是這樣的:

if ($_SERVER['REQUEST_METHOD'] == "GET") { 
    $test = mysql_real_escape_string($_GET['test']); 
    $query = mysql_query("select * from test_demo where test_requested='$test'"); 
    ... 
} 
+0

變量不會在單引號內部擴展,您必須使用雙引號。 – Barmar

+0

仍然沒有工作。我已經完成了您在文章中提到的所有更改。 – Surya

+0

您仍然缺少URL開頭的http://。所以它將它視爲本地文件名,而不是通過服務器。 – Barmar