如何使用simple-html-dom获得此选择的价值?

时间:2015-03-02 12:27:46

标签: php simple-html-dom

<select name="size_select" class="long form-control">
<option selected="selected" value="">Please select</option>     
<option value="6 (xxs)" title="6 (XXS)">6 (XXS)</option>    
<option value="8 (xs)" title="8 (XS)">8 (XS)</option>       
<option value="10 (s)" title="10 (S)">10 (S)</option>   
<option value="12 (m)" title="12 (M)">12 (M)</option>   
<option value="14 (l)" title="14 (L)">14 (L)</option>   
<option value="16 (xl)" title="16 (XL)">16 (XL)</option>  
<option value="18 (xxl)" title="18 (XXL)">18 (XXL)</option>     
<option value="20 (xxxl)" title="20 (XXXL)">20 (XXXL)</option>   

如何在此选择中获取所有值?

$element =  $html->find('#sizeDdl',0);
foreach($element as $elemen) {
    echo ($elemen->plaintext);
}

我尝试这个输出:

注意:尝试在第11行的/h2/home/website/website.com/test.php中获取非对象的属性

这个想法是每个单独的值都应该被记录在SQL基础中。现在是一个常见的结果,而不是单独的每个值

4 个答案:

答案 0 :(得分:2)

首先在select标签中添加id为
<select name="size_select" id="sizeDdl" class="long form-control">
然后改变这些行

$element =  $html->find('#sizeDdl',0);     
foreach($element as $elemen) {         
    echo ($elemen->plaintext);     
} 

到这些:

$text_array = array();
$html = "Your html";     
foreach($html->find('#sizeDdl') as $element) { 
    $options = $element->find('option'); 
    foreach($options as $element1) { 
        $text_array[] = ($element1->plaintext); 
    } 
} 
var_dump($text_array);
print_r(text_array);

答案 1 :(得分:1)

更改此行

<select name="size_select" class="long form-control">

到这一行

<select name="size_select" id="sizeDdl" class="long form-control">

因为你的dom元素应该具有你在javascript中使用并在html中缺失的id属性。

答案 2 :(得分:1)

您当前的代码存在两个问题。

1)您正在尝试通过不存在的id获取元素 2)您正在遍历元素列表,而不是其子元素。

要么按名称查找元素,要么给它一个id(sizeDbl)并迭代其孩子options)。

您还可以修改选择器以选择子项列表而不是选择本身:

$options = $html->find('#sizeDdl option');

$options = $html->find('#sizeDbl')->find('option');

答案 3 :(得分:0)

用简单的html dom获取选择值 试试这段代码它会对你有所帮助

   $element =  $html->find('#selectIDGoesHere',0)->find('option');     
        foreach($element as $elemen) {         
            echo "Display text:".($elemen->plaintext)."<br>"; 
            echo "value:".($elemen->value)."<br>";
        }