下拉字段不会填充

时间:2013-12-18 20:27:29

标签: php drop-down-menu

长期听众,第一次来电。

我正在尝试从其他发布的示例中学习,但它似乎并不适合我。 使用我发现的示例,我正在尝试创建一个4层级联下拉菜单。我的问题是菜单不会填充。我收到以下错误:

  

PHP警告:mysql_fetch_array()要求参数1为资源,布尔值在第36行的/home/mstarks/public_html/TEST/STUFF/ddmenu.php中给出

     

PHP警告:mysql_fetch_array()期望参数1为资源,第44行/home/mstarks/public_html/TEST/STUFF/ddmenu.php中给出布尔值

使用PhPAdmin可以正常运行所有查询。

以下是代码:

<script language=JavaScript>
function reload(form)
    {
        var selected_value=form.man.options[form.man.options.selectedIndex].value;
        self.location='ddmenu.php?man=' + selected_value ;   
    }
</script>

<?php
@$man=$HTTP_GET_VARS['man'];
if(strlen($man) > 0 and !is_numeric($man))
    { 
        echo "INVALID DATA.";
        exit;
    }

$divisions_query=mysql_query("SELECT DISTINCT division, division_id FROM employees_division ORDER BY division_id"); 

if(isset($man) and strlen($man) > 0)
    {
        $bureaus_query=mysql_query("SELECT DISTINCT bureau FROM employees_bureau WHERE division_id=$man ORDER BY bureau_id"); 
    }
        else
    {
        $bureaus_query=mysql_query("SELECT DISTINCT bureau FROM employees_bureau ORDER BY bureau_id");
    } 

echo "<form method=post name=f1 action='ddmenu2.php'>";

echo "<select name='man' onchange=\"reload(this.form)\"><option value=''>Select Division</option>";
while($qresult_divisions=mysql_fetch_array($divisions_query)) 
    { 
        if($qresult_divisions['division_id']==@$man){echo "<option selected value='$qresult_divisions[division_id]'>$qresult_divisions[division]</option>"."<BR>";}
        else{echo  "<option value='$qresult_divisions[division_id]'>$qresult_divisions[division]</option>";}
    }
echo "</select>";

echo "<select name='mod'><option value=''>Select Bureau</option>";
while($qresult_bureaus=mysql_fetch_array($bureaus_query)) 
    { 
        echo  "<option value='$qresult_bureaus[bureau]'>$qresult_bureaus[bureau]</option>";
    }
echo "</select>";

echo "<input type=submit value=Submit>";
echo "</form>";
?>

如果有人能指出我正确的方向,我将非常感激。我仍然需要为此事添加两个下拉列表,然后找出如何将其添加到现有页面。

我已经看过使用AJAX的信息,但这是我的想法。我必须使用javascript和PHP。

如果我没有正确格式化这个问题,请原谅。这里的第一篇文章,我还没有完全弄明白。

1 个答案:

答案 0 :(得分:0)

mysql_query失败并返回FALSE。这会导致您的$divisions_query变量设置为FALSE,而不是您期望的数组。您得到的错误是因为mysql_fetch_array()需要一个数组,而不是FALSE。尝试使用这样的检查语句。

<?php
$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
?>

更多信息,请参阅:http://www.php.net/mysql_query

祝你好运!