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>)。これにより、コンテンツをサーバーに返すことができます。

第 2 に、ページの最初の読み込み時に選択が行われなくても、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 に答える