【问题标题】:PHP Simple HTML DOM and Dropdown Element Selected OptionPHP 简单 HTML DOM 和下拉元素选择选项
【发布时间】:2015-03-14 21:01:31
【问题描述】:

我正在使用 php simple html dom 生成下拉输入。我有一些来自数据库的值,根据它们,我会将“选定”值添加到我的 select->option 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;
?>

直到这里一切都很好。是的,现在我需要将 selected 插入到我的第二个选项中。我不知道如何使用 PHP Simple 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;
?>

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

提前谢谢你!

【问题讨论】:

  • 无法理解这里需要使用simple_html_dom
  • 在这里查看:simplehtmldom.sourceforge.net/manual.htm#section_access 首先我需要创建这个插件的实例,然后我用它生成 dom。我为什么要使用它:因为我不想在我的项目的这一部分中使用 javascript。
  • 是的,但你真的需要使用simple_html_dom吗?没有它你也可以这样做
  • @GonsaloSousa 是的,我可以用 javascript 做到这一点,否则它们将被修复,我需要根据我从 db 获得的值更改所选值。
  • 也许你让问题复杂化了,$db_value = SOMETHING; echo '&lt;option value="someValue2" '.(($db_value==SOMETHING)?' selected':'').'&gt;Value2Value&lt;/option&gt;';。这可以帮助您在不使用simple_html_dom 的情况下获得结果。

标签: javascript php jquery html dom


【解决方案1】:

为什么你使用 simple_html_dom 而不仅仅是一个模板文件(使用 PHP)?

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

甚至更好的 Smarty。

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

Simple_html_dom 是一个用于解析复杂 html 文档的类,例如交换图像 url 或类似的东西。我看不出你需要使用这个类的任何理由。

【讨论】:

  • 我在我的项目的另一部分使用它,并想学习,但谢谢!
  • § - 这个符号有什么用?
【解决方案2】:

只需最少的研究,您就可以自己解决这个问题。

$ret-&gt;children(2)-&gt;selected = true;

【讨论】:

  • 这就是我想要的答案。也试过这个,但在儿童索引方面做错了。简单的答案,简单的解决方案,谢谢!
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多