存储数组中下拉选择的行值

时间:2012-06-20 13:35:54

标签: php mysql arrays

我想在下拉列表中进行选择时存储表中的所有行值(可能在数组中?),这样我就可以通过列名从选择的行中检索任何值。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<label for="select"><select name="id" value="Select" size="1" onChange="this.form.submit()"> 
<?php 
$sql = "SELECT * FROM matningar WHERE matningstyp ='odb'";  
$result = mysql_query($sql) or die (mysql_error());  
while ($row = mysql_fetch_array($result)) 
{ 
        $namn=$row["namn"]; 
        $foretag=$row["foretag"];  
        $options.="<OPTION VALUE=\"$foretag\">".$namn; 
} 
?> 
        <option>
        <? echo $options ?>
        </option>
    </select>
</form>

2 个答案:

答案 0 :(得分:0)

再次检查你的代码,我认为你犯了一些错误。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
    <label for="select">
    <select name="id">
           <?php 
                  $sql = "SELECT * FROM matningar WHERE matningstyp ='odb'";  
                  $result = mysql_query($sql) or die (mysql_error());  
                  while ($row = mysql_fetch_array($result)) { 
                          echo "<option value='".$row['foretag']."'>".$row['namn']."</option>";
                  } 
           ?> 
    </select>
</form>

它更短更高效。

答案 1 :(得分:0)

您的代码应如下所示

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<label for="your_select"><select id="your_select" name="id" onChange="this.form.submit()"> 
<?php 
$sql = "SELECT * FROM matningar WHERE matningstyp ='odb'";  
$result = mysql_query($sql) or die (mysql_error());  
while ($row = mysql_fetch_array($result)) 
{ 
        $namn=$row["namn"]; 
        $foretag=$row["foretag"];  
        $options.="<OPTION VALUE=\"$foretag\">".$namn.'</option>';
} 
?> 
        <? echo $options ?>
    </select>
</form>