2013-06-16 16 views
5

このHTMLコードはすでに$htmlに読み込まれています。私はいくつかの正しい情報を抽出しましたが、選択されたオプション値がselectになってしまいました。単純なHTML DOMパーサー:選択したオプションの値を読み取る方法

<select name="a" id="selstart"> 
    <option value="00">Jan</option> 
    <option value="01">Feb</option> 
    <option value="02">Mar</option> 
    <option value="03">Apr</option> 
    <option value="04">May</option> 
    <option value="05">Jun</option> 
    <option selected value="06">Jul</option> 
    <option value="07">Aug</option> 
    <option value="08">Sep</option> 
    <option value="09">Oct</option> 
    <option value="10">Nov</option> 
    <option value="11">Dec</option> 
</select> 

変数に値「06」を抽出する必要があります。

私が試した:php , simple_html_dom.php, get selected optionで見つかりましたが、うまくいきませんでしたアイデア以下

foreach($html->find('select') as $element) { 
    if ($element->id == 'selstart') 
    { 
     $v = $element->find('option selected',0)->value . '</br>'; 
    } 
} 

や他の多くの組み合わせを。

アイデア?

答えて

4

element[attr]を使用して、指定された属性を持つ要素を選択します。あなたは、このように行うことができます選択を読んだ後にオプション値を設定したい場合は

$v = $element->find('option[selected]', 0)->value . '</br>'; 
0

は、お返事、ありがとう: まず、HTMLが、例えば、別のファイルから選択ロード、 それはこのようなものです:

<div> 
<select id="select1"> 
</select> 
</div> 

次に、あなたはこのように行うことができます。

<?php 
$html=str_get_html($filename_or_method_to_the_html_content); 
$products='<option></option>'. 
      '<option val="1">Val 1</option>'. 
      '<option val="2" selected="selected">Val 2</option>'. 
      '<option val="3">Val 3</option>'; 
$html->find('select[id=select1]','0')->innertext=$products; 
?> 

それは私のためによく働いた;)

0

この単純なコード

$element = $html->find('#selectIDGoesHere',0)->find('option');  
    foreach($element as $elemen) {   
     echo "Display text:".($elemen->plaintext)."<br>"; 
     echo "value:".($elemen->value)."<br>"; 
    } 
を試してみてください