Jak powiedzieli inni członkowie, powinieneś używać PDO (z przygotowanymi oświadczeniami) zamiast mysql_.
Jedna możliwa implementacja:
HTML (form.php)
<select name="list1" id="list1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="list2" id="list2"></select>
<script type="text/javascript">
$("#list1").change(function() {
$.ajax({
url : "get_list2.php?id=" + $(this).val(),
type: 'GET',
dataType:'json',
success : function(data) {
if (data.success) {
$('#list2').html(data.options);
}
else {
// Handle error
}
}
});
});
</script>
PHP (get_list2.php)
require_once("config.php");
$id = $_GET['id'];
if (!isset($id) || !is_numeric($id))
$reponse = array('success' => FALSE);
else {
// Where $db is a instance of PDO
$query = $db->prepare("SELECT * FROM mytable WHERE id = :id");
$query->execute(array(':id' => $id));
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
$options = "";
foreach ($rows as $row) {
$options .= '<option value="'. $row .'">'. $row .'</option>';
}
$response = array(
'success' => TRUE,
'options' => $options
);
}
header('Content-Type: application/json');
echo json_encode($response);
PS:nie testowane, ale powinno działać... chyba.