PHP 简单 HTML DOM 和下拉元素已选选项


PHP Simple HTML DOM and Dropdown Element Selected Option

我正在使用php simple html dom生成下拉输入。我从数据库中有一些值,根据它们,我将"选定"值添加到我的选择>选项 dom 元素中。

<select name="myDropDown" id="someID">
   <option value="someValue1">Value1Value</option>
   <option value="someValue2">Value2Value</option>
   <option value="someValue3">Value3Value</option>
</select>
这是

默认的。 我想像这样添加值,请检查选项 2 :

<select name="myDropDown" id="someID">
   <option value="someValue1">Value1Value</option>
   <option value="someValue2" selected>Value2Value</option>
   <option value="someValue3">Value3Value</option>
</select>

在这样做的同时,我想使用我的插件。

<?php    
    $html = new simple_html_dom();
    $html->load('
           <select name="myDropDown" id="someID">
             <option value="someValue1">Value1Value</option>
             <option value="someValue2">Value2Value</option>
             <option value="someValue3">Value3Value</option>
           </select>
          ');
    echo $html;
?>

直到这里,一切都很好。是的,现在我需要将选定的插入到我的第二个选项中。我不知道如何使用PHP简单HTML DOM执行此操作,或者我在文档中缺少某些内容:http://simplehtmldom.sourceforge.net/manual.htm#section_access

到目前为止我尝试过并在我的 php 部分出现许多错误:

<?php
$html = new simple_html_dom();
   $html->load('
              <select name="myDropDown" id="someID">
                 <option value="someValue1">Value1Value</option>
                 <option value="someValue2">Value2Value</option>
                 <option value="someValue3">Value3Value</option>
              </select>
              ');
   //here's where i'm trying to reach the child nodes :    
   $ret = $html->getElementById('someID');
   $ret->children(2)->GOTTADOSOMETHINGHEREANDIREALLYDUNNO;
   echo $html;
?>

顺便说一句,如果您提供另一种简单的方法来做到这一点,我将不胜感激。

提前谢谢你!

通过最少的研究,您可以自己解决这个问题。

$ret->children(2)->selected = true;

为什么使用simple_html_dom而不是简单的模板文件(使用 PHP)?

<select name="test" <?php if($selected){echo 'selected'}?> />

甚至更好的聪明。

<select name="test" {if $selected}selected{/if} />

Simple_html_dom是一个用于解析复杂 HTML 文档的类,例如交换图像 URL 或类似的东西。我看不出您需要使用此类的任何原因。

用于使用简单HTML DOM
获取下拉元素选择选项试试这个简单易行的方法

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