【问题标题】:php select do something for each resultphp select 为每个结果做一些事情
【发布时间】:2013-06-29 01:02:13
【问题描述】:

我正在尝试生成一个选择列表,其中所选选项等于包含该列表的组元素。

这是我的代码:

echo '<select title="Show Article in Group" id="edt-select-art">';

$result = mysqli_query($con,"SELECT * FROM groups");

$groups = array();
while($row = mysqli_fetch_array($result)) {
    array_push($groups, $row['0']);

    foreach($groups as $group) 
        { 
            if($gID == $group)
                {
                    echo '<option agid="'.$row['0'].'" selected>'.$row['2'].'</option>';
                }
            else
                {
                    echo '<option agid="'.$row['0'].'">'.$row['2'].'</option>';
                }
        }       

}
echo '</select>';

如果我将 foreach 放在 while 之外,我无法获得 row[] 数据,但如果我把它放在里面,它的值会增加一倍或三倍。 关于如何完成这项工作的任何想法?

【问题讨论】:

  • 您正在将该行推送到您的数组 $groups 上。然后,您将单步执行同一个数组并对其进行处理。因此,您当然会得到重复项-每次都会重复第一个条目。此外,您的 &lt;select&gt; 没有 name 属性,这可能会导致问题。
  • 我希望数组包含 id。如果我打印它,它看起来没问题。
  • 你为什么要使用 $groups?为什么不直接使用 $rows 中的数据?

标签: php


【解决方案1】:

不是推送 row[0],而是将 row 推送到组中,然后遍历 groups 数组,如下所示:

echo '<select title="Show Article in Group" id="edt-select-art">';

$result = mysqli_query($con,"SELECT * FROM groups");

$groups = array();

while($row = mysqli_fetch_array($result)) {
    array_push($groups, $row);


}
 foreach($groups as $group) 
        { 
            if($gID == $group[0])
                {
                    echo '<option agid="'.$group['0'].'" selected>'.$group['2'].'</option>';
                }
            else
                {
                    echo '<option agid="'.$group['0'].'">'.$group['2'].'</option>';
                }
        }       

echo '</select>';

【讨论】:

  • 我现在意识到我的问题是多么愚蠢。感谢您的帮助。
【解决方案2】:

您不需要$groups 数组。

echo '<select title="Show Article in Group" id="edt-select-art">';
$result = mysqli_query($con,"SELECT * FROM groups");
while($row = mysqli_fetch_array($result)) {
    echo '<option agid="'.$row['0'].'" '.($row['0'] == $gId ? 'selected' : '').'>'.$row['2'].'</option>';   
}
echo '</select>';

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 2018-06-18
    • 2015-02-24
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2021-09-15
    相关资源
    最近更新 更多