我目前面临两难选择。我正在尝试构建一个菜单,它将显示数据库中的数据数组。然后,用户将从该列表中选择一个项目,基于此,我需要进行数据库调用以检索与之关联的数据。这是我当前的代码。
function foobar() {
$first_option_sql = "SELECT * from {location} l ORDER BY name ASC";
$list_first_option = db_query($first_option_sql);
$output .= "<p><b>Please select the primary location that you would like to check.</b><p>"
$output .= "<br><b>Location: </b> <select id='list'><option>Available locations</option>";
while($first_option_available = db_fetch_object($list_first_option)){
$output .="<option locationid='$first_option_available->lid'>".$first_option_available->name."</option>";
}
$output .="</select><input type=submit value='Search'>";
$output .="<p><b>Children: </b><select id='child'><option selected='yes'>Available children</option><p>";
$children_available_sql = "SELECT complexquery WHERE lid='%d' ORDER BY l.name ASC";
$list_children = db_query($children_available_sql);
while($children_available = db_fetcj_object($list_children)){
$output .="<option>".$children_available->name."</option>";
}
return $output;
}
这里的问题是使用这个代码,我无法检索所选“第一个选项”的值,因此第二个查询从未实际发生;这不会填充第二个列表。
我在考虑使用AJAX或Javascript,但我对这两者都不太熟悉。因此,我想知道如何能够执行此操作。
答案 0 :(得分:1)
首先,您的HTML无效或只是缺少详细信息。
您的选择框需要一个名称元素:
<select name="lid" id='list'>
提交表单时,locationid无效:
<option locationid='$first_option_available->lid'>
您需要一个值属性:
<option value='$first_option_available->lid'>
使用正确的HTML,$ _POST ['lid']将是您想要的位置ID。您可以将其传递给您的函数:
$menu = foobar($_POST['lid']);
function foobar($lid) {
//...
}