我有一个解析器,可以将信息提取到数组 $item 中。从我的数据库中,我将存储“类型”的所有结果提取到数组 $getFormats 中。
然后我将 $item 显示为用户可以修改的大表单(以修复解析器中的任何错误)。特别是,我将重点放在包含解析器提取的“类型”的 $item[3] 上。
我的表单在我的下拉列表旁边显示 $item[3],其中包含数据库中可能包含的“类型”。这里的目标是允许用户将解析器找到的“类型”与数据库中包含的“类型”进行匹配或更改。
显然,我希望默认下拉值是与数据库中已有值匹配的值。如果没有匹配,则默认为空白,用户自己选择合适的类型。
下面的代码演示了我所拥有的。显然,我做错了,因为它不起作用。
<form>
<?php
foreach($articles as $item) {
?>
Type: <input type="text" name="typeparsed" value="<?php echo $item[3]; ?>">
<select name="typechoose" value="<?php echo $value; ?>">
<?php
foreach ($getFormats as $format) {
$selected = '';
if($item[3] == 'entry form' && $format->name == 'Entry Form'){
$selected = 'selected';
}
echo "<option value='".$format->name."' ".$selected.">".$format->name."</option>";
}
?>
</select>
<?php }?>
</form>
$item[3] 是包含解析器提取的“类型”的数组。
$format->name 是包含从数据库中提取的下拉选项的数组。
上面的代码有效,但我的问题是 $format->name 包含两个相同值的实例。
我的数据库有以下“类型”:
Entry Form
Facebook
Entry Form
这是因为 wordpress 存储分层选项的方式。在我的网站上,这些值实际上如下:
Entry Form
Facebook
- Entry Form
如您所见,这是因为 Entry Form 是 Facebook 的顶部菜单项和子菜单。
因此,当我尝试将一种输入表单与输入表单匹配时,在尝试确定哪个输入表单是正确的选择时遇到了问题。
由于我的代码目前是,选择了条目表单的第二个实例。
我如何调整代码,以便如果 $item[3] == 'entry form' (目前如此),那么将选择 FIRST Entry Form?