En primer lugar muchas gracias por contestar. Creo que voy por buen camino, pero aún no me funciona. El código resultante es el siguiente:
Código PHP:
<?php header('Content-type: text/html; charset=utf-8');
$con=mysql_connect("localhost","root","");
mysql_select_db("base",$con);
$consulta="select * from plagas";
$datos=mysql_query($consulta,$con);
$array=mysql_fetch_array($datos);
echo "<form action='' method='post'>
<select id = 'plagas' name = 'plagas'>";
echo "<option value='Ninguno'>Selecciona un opcion...</option>";
do{
$plaga=$array['plaga'];
echo "<option value='$plaga'>$plaga</option>";
} while ($array=mysql_fetch_array($datos));
mysql_close($con);
?>
<div id="respuesta"></div>
</form>
<script type="text/javascript" src="/js/jquery.js"></script>
<script>
$("#plagas").change(function(){
if ($(this).val() != "Ninguno"){
$.ajax({
url: "/segundo_archivo.php",
type: "GET",
data: {
opcion: $(this).val()
}
}).done(function(response){
$("#respuesta").html(response);
}).fail(function(jqXHR, textStatus){
$("#respuesta").html("Ha ocurrido un error: " + textStatus);
});
}
});
</script>
Y el segundo archivo PHP:
Código PHP:
<?php header('Content-type: text/html; charset=utf-8');
$con=mysqli_connect("localhost","root","");
mysqli_select_db("base",$con);
$opcion = mysqli_real_escape_string(strip_tags($_GET["opcion"]));
$query = mysqli_query($con, "SELECT * FROM productos WHERE plaga = '$opcion'");
if (mysqli_num_rows($query)){
?>
<select id = "productos" name = "productos">
<?php
while ($row = mysqli_fetch_array($query)){
?>
<option value = <?=$row["producto"]?> <?=$row["producto"]?> </option>
<?php
}
mysqli_free_result($query);
?>
</select>
<?php
}
?>
Cuando lo ejecuto sólo me aparece la primera lista pero no la segunda. No sé si la libreria que estoy usando sería la correcta:
Código HTML:
<script type="text/javascript" src="/js/jquery.js"></script>
O bien es que el div de la segunda lista debe de ir entre otras etiquetas.
Código HTML:
<select id = "productos" name = "productos">
He probado varias cosas pero sin suerte, en cualquier caso, si me pudierais echar una mano en detectar el fallo lo agradecería mucho.
Saludos.