我在php中有一个数组 - array我正在使用以下代码为这个数组创建一个下拉列表 -
<html>
<head>
</head>
<body>
<form method="post" action="test.php">
<select name="feature" id="Feature">
<?php
$i=0;
foreach($newFeature as $feat)
{
?>
<option value="<?php echo $feat;?>"><?php echo $newFeature[$i];?></option>
<?php
$i++;
}
?>
</select> <input type="submit" name="submit" value="Test">
</form>
</body>
</html>
下拉列表包含两次值。在遍历数组并显示值之后,代码再次遍历该值并再次显示它们。
我在这里做错了什么? 请指导。
答案 0 :(得分:1)
在我的演出中,你对foreach和for循环有点混淆。
在你的情况下,说$ newFeature [$ i]或$ feat实际上是指同一件事。
因此,试试这个:
<html>
<head>
</head>
<body>
<form method="post" action="test.php">
<select name="feature" id="Feature">
<?php
foreach($newFeature as $feat)
{
?>
<option value="<?php echo $feat;?>"><?php echo $feat;?></option>
<?php
}
?>
</select> <input type="submit" name="submit" value="Test">
</form>
</body>
</html>
答案 1 :(得分:0)
向我们展示$ newFeature数组。另外,为什么需要$ i变量?
$newFeature[$i]
答案 2 :(得分:0)
这是一种更清晰的生成列表的方法,也是您以错误的方式使用每个列表。
<form method="post" action="test.php">
<select name="feature" id="Feature">
<?php foreach($newFeature as $feat): ?>
<option value="<?php echo $feat; ?>"><?php echo $feat; ?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="submit" value="Test">
</form>
答案 3 :(得分:0)
如果您使用foreach
无需计算,则应使用$feat
代替
<?php
foreach($newFeature as $feat)
{
?>
<option value="<?php echo $feat;?>"><?php echo $feat;?></option>
<?php
}
?>
答案 4 :(得分:0)
使用$ newFeature [$ i]是一种使用foreach循环的错误方法。 请发布阵列快照或尝试以下内容。
调试并纠正问题
在使用foreach之前打印$ newFeatures数组并调试代码。
或
2.在foreach循环前面添加以下行
<?php $newFeature = array_unique($newFeature); ?>
这种方式可能会解决您的问题。我仍然建议您使用第一个建议并调试代码。