我正在尝试根据另一个下拉框中的选项填充下拉框。这是我的PHP代码:
<form id="inventory" method="POST" action="">
<fieldset>
<label for="area" >Select Shelf Area</label>
<select id="area" name="area">
<option value=""></option>
<?php $area = $conn->query("
select substring_index(location, ' ', 1) as area
FROM location GROUP BY substring_index(location, ' ', 1)");
while ($row = $area->fetch_assoc()) {
echo '<option value="' . $row['area'] . '" >' . $row['area'] . '</option>';
}
>
</select><br/>
</fieldset>
</form>
当我运行我的查询时,一切都很好,但是我需要获取结果并使用它来填充另一个下拉框(前一个下拉列表中的&lt;'值'&gt;),其中: / p>
echo "<label for='location' id='label'>Select location:</label>";
echo "<select id='location' name='location'>";
echo "<option value=''>--Select Location--</option>";
$query = "SELECT location_id, location FROM location
WHERE location LIKE '<value from previous drop down box>'
ORDER BY location";
$result = $conn->query($query);
while ($row = $result->fetch_assoc()) {
echo '<option value="' . $row['location'] . '" >' . $row['location'] . '</option>';
}
有什么想法? 谢谢 吉姆
答案 0 :(得分:0)
您可能以错误的方式使用SUBSTRING_INDEX
功能。
在您的第一个SELECT
中,您可能无法获得任何输出或可能是空行。
根据website -
<强> SUBSTRING_INDEX(STR,DELIM,计数)强>
在计数出现之前,从字符串str返回子字符串 分隔符delim。如果计数是正数,那么一切都在左边 返回最终分隔符(从左边开始计数)。如果算数是 否定,最终分隔符右侧的所有内容(计数 从右边)返回。 SUBSTRING_INDEX()执行一个 搜索delim时区分大小写匹配。
答案 1 :(得分:0)
这是我使用 JavaScript 和 Ajax 解决我的问题的方法:
$("#area").change (function(){
$("#acctRecords tbody tr").remove();
$('#label').show();
$('#label2').show();
$('#location').show();
$('#section').show();
$.ajax({
type: "POST",
async: true,
url: "area.php",
dataType:"json",
data: ({area: $('#area').val()}),
success: function(data) {
$('select#location').empty();
$('select#location').append('<option value="0">Select Option</option>');
//Populate options of the second dropdown
for(var x = 0; x < data.id.length; x++) {
$('select#location').append('<option value="'+data.id[x]+'">'+data.location[x]+'</option>');
} //end of each function
} // end of success
}); // end of ajax call
}); // end of area change function
这发布到我的HTML:
echo"<label for='location' id='label'>Select location:</label>";
echo"<select id='location' name='location'>";
echo"</select><br />";
完美无缺!