[英]drop-down list showing values multiple times
我在php中有一個數組- 數組,並且正在使用以下代碼為該數組創建一個下拉列表-
<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>
下拉列表包含兩次值。 這里,在遍歷數組一次並顯示值之后,代碼再次遍歷該值並再次顯示它們。
我在這里做錯了什么? 請指導。
在我看來,您對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>
向我們展示$ newFeature數組。 另外,為什么需要$ i變量?
$newFeature[$i]
這是一種生成列表的更簡潔的方法,對於每個列表,您都使用了錯誤的方法。
<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>
如果您使用的是foreach
無需計數,而應使用$feat
代替
<?php
foreach($newFeature as $feat)
{
?>
<option value="<?php echo $feat;?>"><?php echo $feat;?></option>
<?php
}
?>
使用$ newFeature [$ i]是使用foreach循環的錯誤方法。 請發布陣列快照或嘗試以下操作。
調試並糾正問題
使用foreach之前,請打印$ newFeatures數組並調試代碼。
要么
2.在foreach循環的前面添加以下行
<?php $newFeature = array_unique($newFeature); ?>
這樣可以解決您的問題。 我仍然建議您使用第一個建議並調試您的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.