来自数据库的动态下拉列表值 [英] Dynamic dropdownlist value from database
本文介绍了来自数据库的动态下拉列表值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将主要下拉列表的值连接到子下拉列表中。下拉列表的值来自数据库main_list和sub_list表。并且身体负荷也不起作用。
How I can connect the value of my main dropdown into sub dropdown. Value of dropdown is from the database main_list and sub_list tables. And also the body onload is not working.
Main_list
Main_list
id | value | id_no
1 | colors | 1
2 | fruits | 2
3 | animals| 3
4 | flowers| 4
sub_list
id | value | category
1 | red | 1
2 | blue | 1
3 | mango | 2
4 | banana | 2
5 | cat | 3
6 | dog | 3
7 | lotus | 4
8 | lily | 4
这是我的代码
PHP :
<body onload="run()">
<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF']?>">
Drop1
<?php
$mysqli = new mysqli("localhost", "root", "", "lists");
$result = $mysqli->query("SELECT * FROM main_list GROUP BY id ORDER BY id");
$option = '';
while($row = $result->fetch_assoc())
{
$option .= '<option value = "'.$row['value'].'">'.$row['value'].'</option>';
}
?>
<select id="main" name="main" onchange="run()"> <!--Call run() function-->
<option selected=selected>Choose</option>
<?php echo $option; ?>
</select><br><br>
<?php
if (isset($_POST['main'])) {
$mysqli = new mysqli("localhost", "root", "", "lists");
$result1 = $mysqli->query("SELECT * FROM sub_list GROUP BY value ORDER BY id");
$option1 = '';
while($row = $result1->fetch_assoc())
{
$option1 .= '<option value = "'.$row['value'].'">'.$row['value'].'</option>';
}
}
echo 'Drop2 ';
echo '<select name="sub" id="sub" onchange="run()">
<option value=" " disabled="disabled" selected="selected">Choose one</option>';
echo $option1;
echo '</select> ';
?>
<input type="submit" name="submit" value="Submit" />
</form>
Javascript:
Javascript :
<script type="text/javascript">
function run(){
document.getElementById('form1').change()
}
</script>
推荐答案
检查以下代码:
第一个列表框代码如下所示:
<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF']?>">
Drop1
<?php
$mysqli = new mysqli("localhost", "root", "", "lists");
$result = $mysqli->query("SELECT * FROM main_list GROUP BY id ORDER BY id");
$option = '';
while ($row = $result->fetch_assoc()) {
$option .= '<option value = "'.$row['value'].'">'.$row['value'].'</option>';
}
?>
<select id="main" name="main">
<option selected=selected>Choose</option>
<?php echo $option; ?>
</select>
<div id="sublist"></div>
<input type="submit" name="submit" value="Submit" />
</form>
Jquery代码如下:
$('#main').change(function(){
$.ajax({
url : 'secondlist.php',
data :{mainlist_id : $(this).val()},
dataType:'html',
type:'POST',
success:function(data){
$('#sublist').html(data);
}
});
});
secondlist.php 页面中的代码:
$mysqli = new mysqli("localhost", "root", "", "lists");
$result1 = $mysqli->query("SELECT * FROM sub_list as s, main_list as m where s.category_id = m.id and s.category_id = $_POST['mainlist_id'] GROUP BY value ORDER BY id ");
$option1 = '';
while ($row = $result1->fetch_assoc()) {
$option1 .= '<option value = "'.$row['value'].'">'.$row['value'].'</option>';
}
$output = 'Drop2 ';
$output .= '<select name="sub" id="sub">';
$output .= '<option value=" " disabled="disabled" selected="selected">Choose one</option>';
$output .= $option1;
$output .= '</select> ';
echo $output;
exit;
?>
可能需要对您的要求进行一些更改,但它肯定适合您。
Some changes may be required related to your requirements, but it will definitely work for you.
如果您有任何疑问,请告诉我们。
Let me know if you have any query!
谢谢!
这篇关于来自数据库的动态下拉列表值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文