所以我有两个下拉列表类别
和子类别
。选择类别
后,必须通过SQL查询填充子类别
。
我知道如何从 SQL 查询填充:
<?php
mysql_connect('localhost', 'user', 'pw');
mysql_select_db('db');
$sql = "SELECT col FROM table";
$result = mysql_query($sql);
echo "<select name='col'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['col'] . "'>" . $row['col'] . "</option>";
}
echo "</select>";
?>
但我不知道如何在 jQuery 中运行查询和更新列表:
function updateList(){
//QUERY&fill based on selection//
.val($('select[name="category"] option:selected').val());
}
我在谷歌上花了一个小时左右,但没能解决这个问题。
最佳答案
您必须在选择主类别时创建 onchange 函数,并将其传递给 jquery 或 javascript ajax 请求响应,以从另一个具有子类别输出的文件中获取值,其中 SQL where 条件作为主类别值。
echo "<select name='col' onchange='loadXMLDoc()'>";
上面的主猫下拉列表及其ajax javascript请求响应如下
<script>
function loadXMLDoc()
var maincat=document.getElementByName("col").val();
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","demo_post2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("maincat_var=maincat");
}
在主页中创建一个 id 为 myDiv 的 div。 另一个页面应该有
<?php
mysql_connect('localhost', 'user', 'pw');
mysql_select_db('db');
$sql = "SELECT col FROM table where main_cat=$_POST['maincat_var']";
$result = mysql_query($sql);
echo "<select name='col2'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['col'] . "'>" . $row['col'] . "</option>";
}
echo "</select>";
?>
关于php - 运行 SQL 查询并根据下拉选择更新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24674781/