【问题标题】:php , simple_html_dom.php, get selected optionphp , simple_html_dom.php, 获取选择的选项
【发布时间】:2011-09-22 23:15:33
【问题描述】:

我有一个这样的 html 块:

$localurl = '
<select name="cCountry" id="cCountry" style="width:200" tabindex="5">

<option value="251">Ascension Island</option>
<option selected="selected" value="14">Australia</option>
<option value="13">Austria</option>
 ';

我正在尝试使用 simple_html_dom (http://simplehtmldom.sourceforge.net/) 提取本例“澳大利亚”中的选定值。到目前为止,我已经构建了一个函数但没有工作:

//提取选中的值

函数 getValue_selected($value, $localurl) { $html = file_get_html($localurl); $i = 0; foreach ($html->find('select[option selected="selected"]') as $k => $v) { if ($v->name == $value) { $shows[$i]['Location'] = $v->value; } } $value = $shows[$i]['位置']; $html->clear(); 未设置($html); 返回$值; } $selected_value = getValue_selected('cCountry', $localurl)

这样的 QueryPath 替代方案也将被接受。

【问题讨论】:

标签: php html-parsing simple-html-dom simpledom


【解决方案1】:

正确答案是:

$html->find('#cCountry',0)->find('option[selected=selected]',0);

【讨论】:

    【解决方案2】:

    我的猜测是,当 $shows 在函数外部定义时,您正在尝试访问它。如果这是问题所在,您要么需要将 global $shows; 放在 func 的顶部,或者更好的是,修改签名以将其传入。类似:

    getValue_selected($value, $localurl, &$shows)
    {/* your function here */ }
    
    getValue_selected($val1, $val2, $shows);
    

    【讨论】:

    • 最初我创建了获取隐藏输入的函数: foreach ($html->find('input[type="hidden"]') as $k => $v) { 。我可以将输入名称设置为 $value 。 (例如,如果有 我调用函数 getValue_selected('postingID', $localurl) 从 html 内容中检索值“98765”)。现在我尝试对其进行修改以使其适用于“选择”输入类型,如您在上面看到的,但似乎不起作用。
    • 我仍然说您正在尝试访问范围内未定义的变量。您是否尝试过在函数内部添加变量$select = array();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    相关资源
    最近更新 更多