Как я могу связать значение моего основного раскрывающегося списка с выпадающим списком. Значение выпадающего списка из таблиц main_list и sub_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:
<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; ?>
Некоторые изменения могут потребоваться в соответствии с вашими требованиями, но это определенно сработает для вас.
Дайте мне знать, если у вас есть какие-либо вопросы!
Благодаря!
вы можете использовать ajax на этом при смене основного, вы можете вызвать функцию, которая получает ответ через ajax и распечатывать, что на вашей странице является стандартным решением
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script> function run(id){ $.ajax({ type:'GET', url:'phpfile_to_make_combobox.php&pid='+id, success:function(strHtml) { $('.div_to_put_combobox').html(strHtml); } }); } </script>
Функция запуска вызова при изменении выбора основной категории
Для получения дополнительной помощи! Google. Это не ракетостроение