Я задал похожий вопрос, и он был закрыт, потому что это, по-видимому, дубликат этого. Вот что я спросил Использование PHP / SQL - Как я могу щелкнуть элемент в списке, чтобы отобразить другой список элементов, связанных с выбранным элементом Я использую список ссылок, а не раскрывающийся список.
В любом случае, я получил его с некоторой помощью.
У меня есть 2 таблицы. таблица "list" (которая имеет поля ID и listName) и таблица "listitems" (которая имеет поля id, itemName и родительские поля). Когда вы щелкаете список, элементы, у которых этот список является родительским, отображаются в другом списке рядом с ним.
Вот, пожалуйста. У него есть устаревшие функции и он небрежный, но пока он будет полезен, пока я узнаю больше. Я все еще новичок, но если мне удастся очистить его, я отредактирую это.
<?php
require ('./includes/connection.inc.php');
/* AJAX request */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
$query = sprintf('SELECT * FROM listitems WHERE parent=%d',
mysql_real_escape_string($_REQUEST['parent']));
$listitems = mysql_query($query)
or die(mysql_error());
printf('<h3>List %d Items</h3>', $_REQUEST['parent']);
while($info = mysql_fetch_array( $listitems ))
{
echo $info['itemName']."<br />";
}
exit;
}
/* Normal request */
?>
<div id="lists">
<h3>Lists</h3>
<?php
$lists = mysql_query("SELECT * FROM lists")
or die(mysql_error());
while($info = mysql_fetch_array( $lists ))
{
echo '<a href="?parent='.$info['id'].'">'.$info['listName'].'</a><br />';
}
?>
</div>
<div id='listitems'>
<?php
$query = sprintf('SELECT * FROM listitems WHERE parent=%d',
mysql_real_escape_string($_REQUEST['parent']));
$listitems = mysql_query($query)
or die(mysql_error());
printf('<h3>List %d Items</h3>', $_REQUEST['parent']);
while($info = mysql_fetch_array( $listitems ))
{
echo $info['itemName']."<br />";
}
?>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>jQuery(function($)){
$('#lists').delegate('a', 'click', function(e){
e.preventDefault();
$('#listitems').load($(this).attr('href'))
});
}
</script>