【问题标题】:PHP Loop to get already selected <select> element valuesPHP循环获取已经选择的<select>元素值
【发布时间】:2012-12-01 22:53:22
【问题描述】:

我在下面的循环找到了“selected”的第一个实例,然后就没有了。对于 FARM 和 COUNTRY,输出应该显示“已选择”,但只有农场返回。示例输出如下。我知道这只是我拥有 WHILE、FOR 和 IF 语句的顺序,但我无法弄清楚。

部分样本输出:

类别未选择“天空”
已选择“农场”类别
类别未选择“城市”
类别未选择“城镇”
类别未选择“国家”

$row 的值为 100,$wordChunks 的值为 2。

$wordChunks = explode(" | ", $categoryquery1['companycategory']);
$sql = "SELECT category_name FROM company_categories " . " ORDER BY category_name";
$rs = mysql_query($sql);for($i = 0; $i < count($wordChunks); $i++)
{

while($row = mysql_data_seek($rs, 0)
{ 

if ($wordChunks[$i] == $row['category_name'])
{
  echo "category selected \"".$row['category_name']."\"<br />"; 
}
else {
    echo "category NOT selected \"".$row['category_name']."\"<br />";
}   
}
}

【问题讨论】:

  • 缺少一个elseif (...) { echo ... } else { echo ... }
  • 在第 8 行之后尝试else{
  • 好的,我们越来越近了。现在它不会为所选元素打印 3 次。现在它将所有内容打印两次。它将打印“选定行”,然后为“选定”元素打印“未选定”行。
  • 发布您更新的代码和结果
  • 更新了代码和输出。

标签: php loops if-statement for-loop while-loop


【解决方案1】:

看看这个,

    while ($row = mysql_fetch_array($rs))
    {
        if (in_array($row['category_name'], $wordChunks))
        {
            echo "category selected \"" . $row['category_name'] . "\"<br />";
        }
        else
        {
            echo "category NOT selected \"" . $row['category_name'] . "\"<br />";
        }
    }

请不要使用mysql_* 扩展,而是使用mysqli_*

【讨论】:

  • 对不起,甚至没有为我显示页面。我确实更新了上面的代码和输出。它现在找到“第一个”选定元素,但随后找不到任何其他元素。它现在只打印一次所有内容,所以我们越来越近了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多