Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/12/2011, 14:33
Avatar de jorgelpadronb
jorgelpadronb
 
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Pasar datos del form sin presionar el boton Envia

Lo que quieres hacer se logra manejando Ajax con Jquery. Mira esta referencia:

www.sitepoint.com/ajax-jquery/

Si no quieres usar Jquery prueba esto:

Incluyes una referencia a un archivo JS que tenga este contenido:

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2. <!--//Quick Javascript Ajax
  3. //Browser Support Code
  4. function Ajax(App,Params,Container,Method){
  5.     var ajaxRequest;  // The variable that makes Ajax possible!
  6.     try{
  7.         // Opera 8.0+, Firefox, Safari
  8.         ajaxRequest = new XMLHttpRequest();
  9.     } catch (e){
  10.         // Internet Explorer Browsers
  11.         try{
  12.             ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  13.         } catch (e) {
  14.             try{
  15.                 ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  16.             } catch (e){
  17.                 // Something went wrong
  18.                 alert("Your browser broke!");
  19.                 return false;
  20.             }
  21.         }
  22.     }
  23.     // Create a function that will receive data sent from the server
  24.     ajaxRequest.onreadystatechange = function(Container){
  25.         if(ajaxRequest.readyState == 4){
  26.             var ajaxDisplay = document.getElementById(Container);
  27.             ajaxDisplay.innerHTML = ajaxRequest.responseText;
  28.         }
  29.     }
  30.     if(Method!='POST' && Method!='GET')Method='POST';
  31.   if(Params!='')Params='?'+Params;
  32.   ajaxRequest.open(Method, App + Params, true);
  33.     ajaxRequest.send(null);
  34. }
  35. //-->
  36. </script>

Donde:

App es la ruta al archivo PHP que va a generar el contenido nuevo para el select.
Params es la lista de parámetros que le vas a pasar a PHP. Ej: valor1=1&valor2&2&valor3=3
Container es el Id del objeto que va a contener los resultados, en tu caso el select que vas a rellenar.
Method es el método a usar para la llamada a PHP ('POST' o 'GET') (es case sentitive )

En el select1 pones por ejemplo: onchange="Ajax('MiScript.PHP','selecccionado='+thi s.value,'IddelSelect2','POST')"

Luego el código MiScript.PHP te lo tienes que ingeniar para que te devuelva la concatenación de los options que se van a incluir en el select2. Ej:

Código PHP:
Ver original
  1. $valor_entrada = $_POST['seleccionado'];
  2. //Haces la consulta en base a $valor_entrada y generas los resultados que va a contener el select2
  3. echo '<option>'.$Valor1.'</option>';
  4. echo '<option>'.$Valor2.'</option>';
  5. echo '<option>'.$Valor3.'</option>';

Ahora cada vez que cambie la selección de select1 se llama a MiScript.PHP y se asigna su resultado HTML al interior de select2. Como lo hace Ajax. Por lo menos así lo explican en la referencia, la cual lamentablemente ya no tengo. Aclaro que esto yo no lo he probado. Pero si funciona es exactamente lo que necesitas.

Saludos.
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.