Código Javascript:
Ver original
$(document).ready(function() { $(".marca").change(function() { $.ajax( { url:"procesa.php", type:"POST", data:"idmarca="+$(".marca").val(), success: function(opciones) { $(".modelo").html(opciones); } } ) } ) });
Esa es la función Javascript que estoy utilizando, como pueden ver la peticion se realiza a la pagina "procesa.php" pero segun lo que he visto esta misma pagina procesa.php es la que me imprime la salida del segundo select y me obliga a embeber este codigo en mi codigo html, esto se me hace muy tedioso puesto que necesito varios select en una misma pagina y tendria que copiar el contenido de procesa.php en cada uno de ellos.
procesa.php:
Código PHP:
Ver original
require_once('../core/dbabstract.php'); $marca = $_POST["marca"]; $conexion = new bdmodelo; $mysqli = $conexion->abrir_conexion(); $query = "select id_modelo, modelo from modelo where id_marca = '$marca'"; $result = $mysqli->query($query); if ($result->num_rows > 0) { //si la variable tiene al menos 1 fila entonces seguimos con el codigo $combobit=""; while ($row = $result->fetch_array()) { $combobit .=" <option value='".$row['id_modelo']."'>".$row['modelo']."</option>"; //concatenamos el los options para luego ser insertado en el HTML } } else { echo "Error"; } echo $combobit; }
Mi pregunta es:
¿Como podría hacer para convertir el contenido de procesa.php en una funcion o agregarla a una de mis clases creadas para luego asi poder retornar el valor y poder utilizarlo varias veces?
Otra cosa, en mi script estoy accediendo a la clase "marca" y la clase "modelo" puesto a que necesito que el script funciona en cada uno de los select los cuales tienen esa clase, pero se me viene a la mente que esto causaria problemas puesto que al cargar la primera clase marca se me cargarian todos los select que tuvieran la clase modelo, lo cual no es la idea. ¿Como podria hacer en ese caso para poder construir una funcion que me sirva para todos los select?
Espero poder haber explicado mi problema, cualquier duda o pregunta es bien bienvenida. Gracias de antemano por su ayuda.