Aquí te paso este código para que lo estudies y lo implementes, está muy fácil de usar:
Este es el código de la página principal:
Código PHP:
Ver original<?php
$mysql = new mysqli("localhost", "root", "", "prueba");
?>
<html>
<head>
<title></title>
<script>
function GetLinea(str) {
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = muestraContenido;
xmlhttp.open("GET", "linea.php?marca=" + str, true);
xmlhttp.send(null);
function muestraContenido() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var srespuesta = xmlhttp.responseText;
document.getElementById("divlinea").innerHTML = srespuesta;
}
}
}
</script>
</head>
<body>
<form name="formulario" action="" method="post">
<div style="float: left; margin-right: 15px;">
<select name="marca" onchange="GetLinea(this.value)">
<option value="" selected>Seleccione...</option>
<?php
$sql = "SELECT * FROM Marca ORDER BY Marca ASC";
$result = $mysql->query($sql);
while ($row = $result->fetch_assoc())
{
echo "<option value='{$row['ID']}'>{$row['Marca']}</option>";
}
?>
</select>
</div>
<div id="divlinea">
<select name="marca" onchange="GetLinea(this.value)">
<option value="" selected>Seleccione...</option>
</select>
</div>
</form>
</body>
</html>
Este es el código de la página que devuelve las líneas pertenecientes a una marca (linea.php):
Código PHP:
Ver original<?php
$mysql = new mysqli("localhost", "root", "", "prueba");
if (isset($_GET['marca'])) {
$marca = $_GET['marca'];
$sql = "SELECT * FROM linea WHERE Marca = '{$marca}' ORDER BY Linea ASC";
$result = $mysql->query($sql);
echo "<select name='linea'>";
echo "<option value='' selected>Seleccione...</option>";
while ($row = $result->fetch_assoc())
{
echo "<option value='{$row['ID']}'>{$row['Linea']}</option>";
}
echo "</select>";
}
?>
Ajústalos a tus necesidades.