使用PHP从MySQL DB更新HTML组合框

时间:2013-07-12 07:55:05

标签: php html mysql forms

需要一些帮助。这是一个非常简单的网络应用程序,我正在开发,但只是需要一些帮助。

这是什么设置。我有一个带有一个组合框的html表单。我只需要使用名为“supplier”的mysql表中的条目更新此组合框。此表“供应商”的输入是通过我已经设置的网站上的另一个表单。我需要帮助从表'供应商'自动更新这个组合框。请让我知道它的PHP代码。我也包括了我的代码。提前致谢!我也包含了html表单。

Here's what's happening after making the edits you guys suggested :)

4 个答案:

答案 0 :(得分:3)

替换你的代码

 $result = mysql_query("SELECT supplier FROM supplier"); 
            while($row = mysql_fetch_array($result)) 
                    { 
                    /*echo '<form action="">';*/ 
                    echo "<select name='supplier'>"; 
            echo "<option value = '$row[supplier]'>""</option>"; 
                    echo "</select>"; 

 $result = mysql_query("SELECT supplier FROM supplier"); 
 echo "<select name='supplier'>"; 
 while($row = mysql_fetch_assoc($result)) 
 { 
    echo "<option value = '".$row[supplier]."'>".$row[supplier]."</option>"; 
 }
 echo "</select>"; 

答案 1 :(得分:0)

所以,

有什么问题?您的脚本无法正常工作,或者您是否希望在一个屏幕上更新活动的Combobox,而在另一个屏幕上输入供应商的新条目?

好的,一些提示:

  1. “选择”-Tag应放在循环外。
  2. 将列名称放在“
  3. 为选项添加显示值
  4. 所以,不检查它:

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

答案 2 :(得分:0)

你的问题在这里:

            $result = mysql_query("SELECT supplier FROM supplier"); 
            while($row = mysql_fetch_array($result)) 
                    { 
                    /*echo '<form action="">';*/ 
                    echo "<select name='supplier'>"; 
            echo "<option value = '$row[supplier]'>""</option>"; 
                    echo "</select>"; 

您正在创建mysql数据循环内的下拉框(Select)。正如@Hitesh所解释的那样。您需要在循环外部创建此内容,并仅回显其中的数据结果。例如:

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

这将输出您的下拉框,其中包含所有供应商名称作为值和显示的文本选项。

如果您尝试执行以下操作:

            $result = mysql_query("SELECT supplier FROM supplier"); 
            while($row = mysql_fetch_array($result)) 
                    { 
                    /*echo '<form action="">';*/ 
                    echo "<select name='supplier'>"; 
            echo "<option value = '$row[supplier]'>""</option>"; 
                    echo "</select>"; 
                    }

您最终会得到与数据库中的供应商一样多的下拉框。这是因为您要为找到的每条记录创建一个新的Select框。

此外,如果未指定$row['supplier']代码之间的第二个option,您最终会得到一个空白(空)下拉框。

希望这会有所帮助。

答案 3 :(得分:0)

这是完整的代码:

PHP代码:

<?php
// select box open tag
$selectBoxOpen =  "<select name='supplier'>"; 
// select box close tag
$selectBoxClose =  "</select>";
// select box option tag
$selectBoxOption = ''; 

// connect mysql server
$con = mysql_connect("localhost","user","pass"); 
if (!$con) { 
    die('Could not connect: ' . mysql_error()); 
} 

// select database
mysql_select_db("rtgs", $con); 
// fire mysql query
$result = mysql_query("SELECT supplier FROM supplier");
// play with return result array 
while($row = mysql_fetch_array($result)){   
    $selectBoxOption .="<option value = '".$row['supplier']."'>".$row['supplier']."</option>"; 
}
// create select box tag with mysql result
$selectBox =  $selectBoxOpen.$selectBoxOption.$selectBoxClose;   
?>

HTML代码:

<form action="ntxn.php" method="post">

<table>
    <tr>
        <td>Supplier Name:</td>
        <td> 
            <?php echo $selectBox;?>
        </td>
    </tr>

    <tr>
        <td>Bill No. :</td>
        <td><input type ="text" name="billno"/></td>
    </tr>

    <tr>
        <td>Bill Date : </td>
        <td><input type="date" name="billdate"/></td>
    </tr>

    <tr>
        <td>Bill Amount : </td>
        <td><input type="text" name="billamt"/></td>
    </tr>

    <tr>
        <td>NEFT / RTGS No. :</td>
        <td><input type="text" name="rtgs"/></td>
    </tr>

    <tr>
        <td><input type="submit" name="Save"/></td>
    </tr>
</table>

</form>