1

我是 php 的新手,我正在尝试从数据库中加载下拉列表。从下面的代码中,只有else循环正在工作。和ifelseif工作。

我不知道循环中的错误是什么。

<html>
<head>
</head>
<body>
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'>  
<select name="value">
    <option value="1">CLUB/FEDERATION/LIGUE</option>
    <option value="2">SPONSOR</option>
    <option value="7">AGENCE CONSEIL</option>
</select>
<br>
<?php

$db = JFactory::getDBO();

if($_POST['value'] == '1') { 

   $query = "SELECT name FROM `fs01_metier` WHERE id_cat=1"; 
   $result = mysql_query($query);
      $result = mysql_query($query);
   echo "<select name=category>";
   while($row=mysql_fetch_array($result)) {
   echo "<option value='".$row['name']."'>".$row['name']."</option>";
   echo "</select>"; 

}

elseif($_POST['value'] == '2') { 

    $query = "SELECT name FROM `fs01_metier` WHERE id_cat=2"; 
    $result = mysql_query($query);
   echo "<select name=category>";
   while($row=mysql_fetch_array($result)) {
   echo "<option value='".$row['name']."'>".$row['name']."</option>";
   echo "</select>"; 
}


else { 
   $query = "SELECT name FROM `fs01_metier` WHERE id_cat=7"; 
   $result = mysql_query($query);
   echo "<select name=category>";
   while($row=mysql_fetch_array($result)) {
   echo "<option value='".$row['name']."'>".$row['name']."</option>";
   echo "</select>"; 
}

}

?>

</form>
</body>
</html>
4

3 回答 3

1

您没有在第一个 if 语句和 else if 语句中关闭您的 while 循环。缺少结束 '}'

while($row=mysql_fetch_array($result)) {
   echo "<option value='".$row['name']."'>".$row['name']."</option>"; 
}
echo "</select>";

同样在“else”语句中,您希望将“}”括号移到行前

echo "</select>";
于 2012-08-08T20:15:07.827 回答
1

脚本存在一些问题。

首先,没有提交按钮(在 之前</form>)。这允许将内容返回到服务器。

其次,即使在第一次加载页面时没有选择,也会执行 ELSE。

在每个 if 中,似乎都缺少}循环中的关闭。最后还有一个额外的。

这是我要做的:

<html>
<head>
</head>
<body>
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'>  
<select name="value">
    <option value="1">CLUB/FEDERATION/LIGUE</option>
    <option value="2">SPONSOR</option>
    <option value="7">AGENCE CONSEIL</option>
</select>
<br>
<?php

$db = JFactory::getDBO();

if (array_key_exists('value', $_POST) && $_POST['value']) { 
    if($_POST['value'] == '1') { 

       $query = "SELECT name FROM `fs01_metier` WHERE id_cat=1"; 
       $result = mysql_query($query);
       $result = mysql_query($query);
       echo "<select name=category>";
       while($row=mysql_fetch_array($result)) {
           echo "<option value='".$row['name']."'>".$row['name']."</option>";
       }
       echo "</select>"; 
    }

    elseif($_POST['value'] == '2') { 
        $query = "SELECT name FROM `fs01_metier` WHERE id_cat=2"; 
        $result = mysql_query($query);
        echo "<select name=category>";
        while($row=mysql_fetch_array($result)) {
           echo "<option value='".$row['name']."'>".$row['name']."</option>";
        }
        echo "</select>"; 
    }

    else { 
        $query = "SELECT name FROM `fs01_metier` WHERE id_cat=7"; 
        $result = mysql_query($query);
        echo "<select name=category>";
        while($row=mysql_fetch_array($result)) {
            echo "<option value='".$row['name']."'>".$row['name']."</option>";
        }
        echo "</select>"; 
    }
}

?>

<input type="submit" value="Submit" />
</form>
</body>
</html>
于 2012-08-08T20:23:22.847 回答
0

试试这个

<html>
<head>
</head>
<body>
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'>  
<select name="value">
    <option value="1">CLUB/FEDERATION/LIGUE</option>
    <option value="2">SPONSOR</option>
    <option value="7">AGENCE CONSEIL</option>
</select>
<br>
<?php

$db = JFactory::getDBO();

if($_POST['value'] == '1') { 

   $query = "SELECT name FROM `fs01_metier` WHERE id_cat=1"; 
   $result = mysql_query($query);
   //$result = mysql_query($query);
   echo "<select name=category>";
   while($row=mysql_fetch_array($result)) {
   echo "<option value='".$row['name']."'>".$row['name']."</option>";
   }
   echo "</select>"; 

}elseif($_POST['value'] == '2') { 

    $query = "SELECT name FROM `fs01_metier` WHERE id_cat=2"; 
    $result = mysql_query($query);
   echo "<select name=category>";
   while($row=mysql_fetch_array($result)) {
   echo "<option value='".$row['name']."'>".$row['name']."</option>";
   }
   echo "</select>";


}else { 
   $query = "SELECT name FROM `fs01_metier` WHERE id_cat=7"; 
   $result = mysql_query($query);
   echo "<select name=category>";
   while($row=mysql_fetch_array($result)) {
    echo "<option value='".$row['name']."'>".$row['name']."</option>";

    }
   echo "</select>"; 
}

?>


</form>
</body>
</html>
于 2012-08-08T20:16:45.647 回答