填充下拉框不会显示数据库

时间:2013-07-31 17:31:32

标签: php mysql database html-select

我尝试填充 下拉列表框,从 MySQL 中检索数据库。以下是我的表单 php 文件。它对我来说没什么问题,但是当我点击 提交按钮 时,我不知道为什么它没有显示出来。我有什么办法可以解决这个错误吗?任何更正和建议将不胜感激。

CS_JOBS表包含:job_titlecategory_code(17,27,37 ....),等等。

在这种情况下,

connect.php 可以正常工作。

我的表格

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <form action = "csjob.php" method = "POST" name = "jobsearch">
            <select name = "category_code[]">
                <option value = "17">Architecture and Engineering</option>
                <option value = "27">Arts, Design, Entertainment, Sports, and Media</option>
                <option value = "37">Building and Grounds Cleaning and Maintenance</option>
                <option value = "13">Business and Financial Operations</option>
                <option value = "21">Community and Social Services</option>
                <option value = "15">Computer and Mathematical</option>
                <option value = "47">Construction and Extraction</option>
                <option value = "25">Education, Training, and Library</option>
                <option value = "45">Farming, Fishing, and Forestry</option>
                <option value = "35">Food Preparation and Serving Related</option>
                <option value = "29">Healthcare Practitioner and Technical</option>
                <option value = "31">Healthcare support</option>
                <option value = "49">Installation, Maintenance, and Repair</option>
                <option value = "23">Legal</option>
                <option value = "19">Life, Physical, and Social Science</option>
                <option value = "11">Management</option>
                <option value = "43">Office and Administrative Support</option>
                <option value = "39">Personal Care and Service</option>
                <option value = "51">Production</option>
                <option value = "33">Protective Service</option>
                <option value = "41">Sales and Related</option>
                <option value = "53">Transportation and Material Moving</option>
            </select>
            <input type="submit" value="Submit"> 
        </form>
    </body>
</html>

csjob.php

<?php 
    require("connect.php");
    if(isset($_POST['submit'])){
        $sql = "SELECT * FROM CS_JOBS WHERE category_code=".$_POST['category_code'];
        $result = mysql_query($sql);

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

这个问题有很多错别字,这是我上传的实际代码:a link

3 个答案:

答案 0 :(得分:2)

你有3个小问题。第一个是,格式为

<select name = "category_code[]">

应该是

<select name="category_code">

因此,名称中没有括号[],也不需要额外的空格...
只有当您有一个具有多个select的选项时才需要括号,并且将返回一个数组(因此括号)。在你的情况下不会发生这种情况。

第二个问题就是之前所说的:PHP中的

$row['job_title'}

应该是

$row['job_title']

因此请使用}

更改]

您的第三个问题与检查提交有关:

if(isset($_POST['submit'])){

应该是

if(isset($_POST['category_code'])){

因为您没有名称'提交'的字段。您有一个 id 提交和提交的字段。但没有名称提交。您可以将name='submit'添加到提交按钮。或者只是按照我上面提出的改变......

答案 1 :(得分:1)

<?php 
    require("connect.php");
    if(isset($_POST['submit']))
    {
        $sql = "SELECT * FROM CS_JOBS WHERE category_code=".$_POST['category_code'];
        $result = mysql_query($sql);
        if( mysql_num_rows( $result ) > 0 ){
            echo "<select name='category_code'>";
              while ($row = mysql_fetch_array($result)) {
                  echo "<option value='".$row['job_title']"'>".$row['job_title']"</option>";
                }

            echo "</select>";
          }
    }


?>

答案 2 :(得分:0)

你的代码毫无意义。如果存在特定的表单字段,则运行查询,但仅当相同的表单字段 NOT 时才运行“显示结果”代码。

最简单的修复:删除 } else { ...