我有一个带有选择框的表单和一个以前选择过的数据库值。是的,我需要这个值,它被选择显示为最后选择的内部表格。我尝试使用 php dom,但我无处可去。
所以这里是html:
<select name="conf_1">
<option value="Y">Yes</option>
<option value="N">No</option>
</select>
<select name="conf_2">
<option value="text">text</option>
<option value="alsotext">alsotext</option>
</select>
现在我想显示存储在数组中的所选选项,如下所示:
$confs = array([1] => N, [2] => text );
做一些代码:
loop{
<option value="$confs[$i]">$confs[$i]</option> has to be appended to <select name="conf_$i">
}
现在我找不到办法做到这一点。我尝试过使用 php dom,但我不知道如何按名称属性选择元素然后循环槽,所以我无法制作一个真正的 php 示例。我只是不知道从哪里开始。
如果有人有办法做到这一点,请赐教!?
使用受@Markus I 启发的代码完成它:
$dom = new DOMDocument();
$dom->loadHTML($form);
$xPath = new DOMXPath($dom);
foreach ($dom->getElementsByTagName('select') as $select) {
$name = $select->getAttribute('name');
$name = str_replace('conf_', '', $name);
foreach($xPath->query('./option', $select) as $option) {
if ($option->getAttribute('value') == $confs[$name]) {
$option->setAttribute('selected', 'selected');
}
}
}
$form = $dom->saveHTML($dom);
echo $form;