我有一个解析器,它将信息提取到array $ item中。从我的数据库中,我将所有结果拉到我将“类型”存储到数组$ getFormats中。
然后我将$ item显示为一个用户可以修改的大表单(以修复解析器中的任何错误)。在partiular中,我讨论$ 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]是包含解析器提取的“type”的数组。
$ format-&gt; name是包含从数据库中提取的下拉选项的数组。
上面的代码有效但我的问题是$ format-&gt; name包含两个相同值的实例。
我的数据库有以下“类型”:
Entry Form
Facebook
Entry Form
这是因为wordpress存储分层选项的方式。在我的网站上,这些值实际上如下:
Entry Form
Facebook
- Entry Form
正如您所看到的,这是因为Entry Form是顶级菜单项和Facebook的子菜单。
因此,当我尝试将一种类型的条目表单与条目表单匹配时,我在尝试确定哪个条目表单是正确的选择时遇到了问题。
正如我的代码目前,选择了第二个输入表格实例。
我如何调整代码,以便如果$ item [3] =='报名表'(目前为止),那么将选择FIRST报名表?
答案 0 :(得分:1)
首先,我不明白为什么要使用它:
<?php
foreach($articles as $item) {
if ($item[3] == 'entry form') {
$value = 'entry form';
} else {
$value = $item[3];
}
?>
你可以简单地使用下面的代码,它会做得非常相似:
<?php
foreach($articles as $item) {
$value = $item[3];
?>
要匹配所选元素,请执行以下操作:
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($value == $format->name){ $selected = ' selected="selected" '; }
echo "<option value='".$format->name."' ."$selected".>".$format->name."</option>";
}
?>
</select>
<?php }?>
答案 1 :(得分:0)
贝克斯你已经改变了你的问题我将另外给出一个简单的回答:只要两个“报名表”具有相同的名称,你就不会确定。如果您可以检查它们的数据库ID,请尝试使用它,否则请更改它们的名称。
<?php // $value is actualy ID of the element; ?>
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($value == $format->id){ $selected = ' selected="selected" '; }
echo "<option value='".$format->id."' ."$selected".>".$format->name."</option>";
}
?>
</select>
作为所选元素的值传递ID。