Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/12/2015, 17:13
peperafa
 
Fecha de Ingreso: diciembre-2015
Mensajes: 45
Antigüedad: 8 años, 11 meses
Puntos: 3
Respuesta: Campo select anidado con javascript y jquery

Si te entiendo perfectamente, mira ya tienes 2 soluciones la que te propuse de ocultar y mostrar las etiquetas (solo las que estén anidadas) con JQuery para lograr el efecto dinámico que quieres, lógicamente con cierta selección hace cierta instrucción por eso se utiliza un if con los valores que quieras que aparezca la casilla de selección.

por ejemplo asi:
if ((seleccion=="auto1") || (seleccion=="auto2") || (seleccion=="auto3"))
// `mi código para mostrar el otro combobox
}

Es lo que te explique la vez pasada. En caso de que tengas muchos valores en los input toma mejor el id del select (claro tendrás que acomodar el código de tal manera) o puedes usar s.match y colocar un identificador con un nombre en común en los input que contiene el select

Te dejo un ejemplo de su uso:

var s = "hello world!";
if (s.match(/hello.*/)) {
// do something
}

También la puedes llamar el evento onchange con el identificador de tu select como lo comenta infoturnosya y ya no necesitas tomar el valor de lo que seleccionas, que se me hace lo más viable si no quieres lograr un efecto para cada selección.

Básicamente lo que te propongo es lo mismo solo que en lugar de php utilizas etiquetas fijas html y el jquery creando el mismo aspecto dinámico, a mí me gusta más así.

La otra solución sería llamar a las funciones en el código php de esta manera en tu caso sería así:

Código PHP:
$prueba="1234";
if ((
$_POST["seleccion"]=="autos") || ($_POST["seleccion"]=="1234")) {
    
$options'
<table class="forms" width="100%" border="0">
    <tr>
      <td class="forms2" width="20%">Marca:</td>
      <td width="80%">
      <select name="marca" class="select id="lst-marcas" onChange=\'javascript:mifuncion("'
.$prueba.'")\'">
      <option value="0">=Selecciona una marca=</option>
      <option value="marca1">marca1</option>
      <option value="marca2">marca2</option>
      <option value="marca3">marca3</option>
      <option value="marca4">marca4</option>
      <option value="marca5">marca5</option>
      <option value="marca6">marca6</option>
      <option value="marca7">marca7</option>
      <option value="marca8">marca8</option>
      </select></td>
    </tr>
    <tr>
'

}
if (
$_POST["seleccion"]=="1234") {
    
$options$options.
      <td class="forms2">Modelo:</td>
      <td><select name="modelo" class="select" id="modelo">
      <option value="0"></option>
    </select></td>
      </table>
    '
;    

Yo mande un parámetro de prueba con el valor de 1234 tu se lo puedes cambiar o quitar no es necesario ya que lo puedes poner directo en la función. Ese valor lo utilizo para identificar cuando se cambia la selección de la marca y así poner el modelo. La desventaja es que como es una variable que se usa para todo y la que contiene tu select se perderá el valor seleccionado pero mostrara el otro select, esto se puede arreglar con php o javascript, pero me desviaría mucho del tema.

Y mifuncion llevaría esto:

Cita:
function mifuncion(a){
alert(a);
$.post("javascript.php", { seleccion: a }, function(data){
$("#formularios").html(data);
});
}
A ver si proponen más soluciones, mira si no me entiendes lo de mostrar y ocultar te dejo el link con un blog para que lo cheques: http://www.desarrolloweb.com/articulos/mostrar-ocultar-elementos-jquery.html.
Saludos!!