簡體   English   中英

下拉列表多次顯示值

[英]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循環的錯誤方法。 請發布陣列快照或嘗試以下操作。

調試並糾正問題

  1. 使用foreach之前,請打印$ newFeatures數組並調試代碼。

    要么

2.在foreach循環的前面添加以下行

<?php $newFeature = array_unique($newFeature); ?>

這樣可以解決您的問題。 我仍然建議您使用第一個建議並調試您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM