如何使用php从数据库中检索值后,使用其id获取div的值

时间:2014-04-10 20:22:00

标签: php html parsing dom

我试图使用Simple HTML Dom Parser获取div元素的值。它仅适用于硬编码值。这是硬编码的东西。

<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文件中,我使用Simple 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); 

?>

如果我能提到d1或d2或d3,请在d5的位置。我能够分别获得值1,2,3。但我无法获取从数据库中检索的订单ID值。这些元素的div ID从d4开始,依此类推。哪里可能我错了?

1 个答案:

答案 0 :(得分: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'");
    ...
}