Foros del Web » Programando para Internet » Javascript » Frameworks JS »

2 variables

Estas en el tema de 2 variables en el foro de Frameworks JS en Foros del Web. Hola a todos; Tengo un script que me funciona bien este es el script Código PHP: < script > function  enviar_parametro ( valor ){ location  ...
  #1 (permalink)  
Antiguo 08/06/2011, 11:58
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
2 variables

Hola a todos;

Tengo un script que me funciona bien este es el script
Código PHP:
<script>
function 
enviar_parametro(valor){
location location.pathname '?provincia=' valor;
}
window.onload = function(){
document.getElementById('provincia').onchange = function(){
enviar_parametro(this.value);
}

</script> 
Y aqui envia el parametro
Código PHP:
<select name="provincia" id="provincia" onchange='enviar_parametro(this.value);'
Ahora quiero poner otro select y que me envie los 2 parametros.

Ahora lo tengo así, pero claro no me funciona, ya que si envio uno, me quita el otro.

Esto es lo que tengo ahora.
Código PHP:
<script>
<
script>
function 
enviar_parametro(valor){
location location.pathname '?provincia=' valor;
}
window.onload = function(){
document.getElementById('provincia').onchange = function(){
enviar_parametro(this.value);
}

</script>
function enviar_envio(valor){
location = location.pathname + '?envio=' + valor;
}
window.onload = function(){
document.getElementById('fenvio').onchange = function(){
enviar_envio(this.value);
}

</script>

   <select name="provincia" id="provincia" onchange='enviar_parametro(this.value);'>

<select name="fenvio" id="fenvio" onchange='enviar_envio(this.value);'> 
Un saludo

Última edición por visona; 08/06/2011 a las 12:15
  #2 (permalink)  
Antiguo 08/06/2011, 12:15
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

No entiendo porque pones este tema en AJAX si lo que estás haciendo no tiene nada que ver con ello.

Está claro que no te va a enviar los dos parámetros si lo que haces es que cuando cambia el select le rediriges a otro página.

Luego, asignas dos veces el evento onchange (en el código del select y al cargarse la página). Sólo es necesario una de ellas, mejor la segunda que he nombrado.

Si quieres hacer eso vas a tener que utilizar un botón aparte que cuando pulses se manden los dos parámetros o que cuando cambies uno de los dos selects se manden los parámetros de los dos.
  #3 (permalink)  
Antiguo 08/06/2011, 12:20
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

En que tema deberia ponerlo?

Otra cosa es que no se redirige a otra pagina, ya que lo carga en la misma pagina
Tambien comentarte que son 2 select diferentes.

Simpelmente necesito que si se cambia 1 o los 2 select me envie los parametros por url para capturarlos por GET
  #4 (permalink)  
Antiguo 08/06/2011, 12:36
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Todo lo que me has dicho lo había visto, pero sigues teniendo el mismo problema.

Si quieres mandar las dos variables crea una función que mande las dos:

Código Javascript:
Ver original
  1. function enviar_parametros(valor1,valor2){
  2. location = location.pathname + '?provincia=' + valor1+'&fenvio='+valor2;
  3. }
  4.  
  5. window.onload = function(){
  6.  
  7. var provincia = document.getElementById('provincia');
  8. var fenvio = document.getElementById('fenvio');
  9. provincia.onchange = function(e){    
  10. enviar_parametros(this.value,fenvio.value);
  11. }
  12.    
  13. fenvio.onchange = function(e){
  14. enviar_parametros(provincia.value,this.value);    
  15. }  
  16.     }
  #5 (permalink)  
Antiguo 09/06/2011, 12:58
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

Gracias por tu ayuda, pero no me funciona.
CUando cambio el primer select, me funciona, pero en el valor "feenvio" me pone UNDEFINED, y cuando cambio el segundo valor, me pone el valor en "provincias" y en "feenvio" me sigue saliendo UNDEFINED

Esto es lo que me sale cuando cambio el primer select

http://www.milyunasensaciones.com/ti...?provincia=Las Palmas&fenvio=undefined.

Y esto es lo que sale cuando cambio el seguindo valor.

http://www.milyunasensaciones.com/ti...vincia=Paquete Azul&fenvio=undefined
  #6 (permalink)  
Antiguo 09/06/2011, 13:02
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Pues yo lo he probado y funciona. Pon el código HTML (no el PHP, el que te crea cuando ejecutas la página) para ver como lo tienes.
  #7 (permalink)  
Antiguo 09/06/2011, 13:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

este es el form
Código PHP:
<div id="form_registrados" style="display:<?php echo $conregistro?>">
   <table width="100%" border="0" cellspacing="5">
    <tr>
     <td align="center"><span class="descripcion_articulos">Estos son los datos de env&iacute;o que disponemos.<br />
Si no son correctos, ahora puede modificarlos. </span></td>
    </tr>
   </table>
   <form id="form_registro" name="form_registro" method="post" action="">
   <table width="100%" border="0" cellspacing="5" class="descripcion_articulos">
      <tr>
       <td width="31%" align="right">Nombre y apellidos:</td>
       <td width="69%" align="left"><label>
        <input name="nombre" type="text" id="nombre" value="<?php echo $row_usuarios['nombre']; ?>" />
       </label></td>
      </tr>
      <tr>
       <td align="right">Direcci&oacute;n:</td>
       <td align="left"><input name="direccion" type="text" id="direccion" value="<?php echo $row_usuarios['calle']; ?>" /></td>
      </tr>
      <tr>
       <td align="right">Poblaci&oacute;n:</td>
       <td align="left"><input name="localidad" type="text" id="localidad" value="<?php echo $row_usuarios['localidad']; ?>" /></td>
      </tr>
      <tr>
       <td align="right">C&oacute;digo postal:</td>
       <td align="left"><input name="cp" type="text" id="cp" value="<?php echo $row_usuarios['cp']; ?>" /></td>
      </tr>
      <tr>
       <td align="right">Provincia:</td>
       <td align="left"><label for="provincia"></label>
        <select name="provincia" id="provincia" onchange='enviar_parametro(this.value);'>
        
        
         <?php do {  ?>
         <option value="<?php echo $row_provincias['provincia']?>"<?php if (!(strcmp($row_provincias['provincia'], $provinciass))) {echo "selected=\"selected\"";} ?>><?php echo $row_provincias['provincia']?></option>
         <?php
} while ($row_provincias mysql_fetch_assoc($provincias));
  
$rows mysql_num_rows($provincias);
  if(
$rows 0) {
      
mysql_data_seek($provincias0);
      
$row_provincias mysql_fetch_assoc($provincias);
  }  
?>
  
 
       </select></td>  
      
      </tr>
      <tr>
       <td align="right">Tel&eacute;fono:</td>
       <td align="left"><input name="telefono" type="text" id="telefono" value="<?php echo $row_usuarios['telefono']; ?>" size="9" /></td>
      </tr>
      <tr>
       <td align="right">e-mail:</td>
       <td><input name="email" type="text" id="email" value="<?php echo $row_usuarios['usuario']; ?>" /></td>
      </tr>
      <tr>
       <td rowspan="3" align="right" valign="top">Forma de pago:<img src="../images/credit-cards-logos.png" alt="" width="180" height="53" align="absmiddle" /></td>
       <td><input name="fpago" type="radio" id="radio" value="Contrareembolso" checked="checked" />
       <label for="fenvio">Contrareembolso</label></td>
      </tr>
      <tr>
       <td><input type="radio" name="fpago" id="radio2" value="Anticipado" />
       Transferencia</td>
      </tr>
      <tr>
       <td><input type="radio" name="fpago" id="radio3" value="paypal" />       
       PAYPAL</td>
      </tr>
      <tr>
       <td rowspan="2" align="right">&nbsp;</td>
       
      </tr>
      <tr>
       <td>&nbsp;</td>
      </tr>
      <tr>
       <td align="right">Forma de envio:</td>
       <td><select name="fenvio" id="fenvio" >
        <option value="MRV" <?php if (!(strcmp("MRV"$_GET['envio']))) {echo "selected=\"selected\"";} ?>>MRV</option>
        <option value="Paquete Azul" <?php if (!(strcmp("Paquete Azul"$_GET['envio']))) {echo "selected=\"selected\"";} ?>>Paquete Azul</option>
       </select></td>
      </tr>
      <tr>
       <td>&nbsp;</td>
       <td>&nbsp;</td>
      </tr>
      <tr>
       <td><input name="id" type="hidden" id="id" value="<?php echo $row_usuarios['id_usuario']; ?>" />
       <input name="portes" type="hidden" id="portes" value="<?php echo $losportes?>" /></td>
       <td><label>
        <input name="button7" type="submit" class="boton_rojo" id="button7" value="Validar compra" />
       </label></td>
      </tr>
      <tr>
       <td><input name="MM_insert" type="hidden" id="MM_insert" value="form_registro" /></td>
       <td>&nbsp;</td>
      </tr>
     </table>
    </form>
   </div>
el script esta por debajo en el body
  #8 (permalink)  
Antiguo 09/06/2011, 13:16
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Te dije que no me pusiese el PHP, sino el HTML generado, sino cuesta mucho probarlo.
  #9 (permalink)  
Antiguo 09/06/2011, 13:22
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Lo que no entiendo, es para que quieres enviar esos parámetros cuando cambias el valor del select si lo que te interesa es enviar todo el formulario cuando hayas terminado de rellenarlo.

Eso es lo que me parece tal y como viene en tu página.
  #10 (permalink)  
Antiguo 09/06/2011, 13:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

no me deja pegar todo el codigo html, ya que me dice que es muy largo...
  #11 (permalink)  
Antiguo 09/06/2011, 13:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

</head>

<body class="thrColAbsHdr">


<script>
function enviar_parametros(valor1,valor2){
location = location.pathname + '?provincia=' + valor1+'&fenvio='+valor2;
}

window.onload = function(){

var provincia = document.getElementById('provincia');
var fenvio = document.getElementById('fenvio');
provincia.onchange = function(e){
enviar_parametros(this.value,fenvio.value);
}

fenvio.onchange = function(e){
enviar_parametros(provincia.value,this.value);
}
}

</script>


<div id="container">
<div id="mainContent2">
</div>
<div id="no_usuario" style="display:">
<table width="79%" border="0" cellspacing="5" class="descripcion_articulos">
<tr>
<td width="10%"><p><img src="../images/alerta.png" width="48" height="48" /></p></td>
<td width="90%" align="left">Hemos detectado que no est&aacute; registrado/a o no a iniciado sesi&oacute;n.<br />
puede iniciar sesi&oacute;n ahora, o seguir la compra sin registrarse. Si desea darse de alta pulse aqu&iacute;.&nbsp;<a href="login.php"><img src="../images/imagesCA99ODBT.jpg" height="20" border="0" align="middle" /></a></td>
</tr>
</table>
<form id="entrada" name="entrada" method="POST" action="/tienda/carrito.php">
<table width="74%" border="0" align="center" cellspacing="5" class="descripcion_articulos">
<tr>
<td width="11%" align="right">Usuario:</td>
<td width="21%" align="left"><label>
<input name="usuario" type="text" id="usuario" size="20" onchange="conMayusculas(this)"/>
</label></td>
<td width="16%" align="right">Contrase&ntilde;a:</td>
<td width="16%" align="left"><input name="pass" type="password" id="pass" size="12" /></td>
<td width="36%" align="center"><label>
<input name="button" type="submit" class="boton_azul" id="button" value="Iniciar sesi&oacute;n" />
</label></td>
</tr>
</table>
</form>
</div>
<table width="87%" border="0" cellspacing="5" class="descripcion_articulos">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align="left"><p>Este es el detalle de su compra </p></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
<hr />
<br />


<hr align="center" width="350" />

<p>

</p>
<div id="form_registrados" style="display:none">
<table width="100%" border="0" cellspacing="5">
<tr>
<td align="center"><span class="descripcion_articulos">Estos son los datos de env&iacute;o que disponemos.<br />
Si no son correctos, ahora puede modificarlos. </span></td>
</tr>
</table>
<form id="form_registro" name="form_registro" method="post" action="">
<table width="100%" border="0" cellspacing="5" class="descripcion_articulos">
<tr>
<td width="31%" align="right">Nombre y apellidos:</td>
<td width="69%" align="left"><label>
<input name="nombre" type="text" id="nombre" value="" />
</label></td>
</tr>
<tr>
<td align="right">Direcci&oacute;n:</td>
<td align="left"><input name="direccion" type="text" id="direccion" value="" /></td>
</tr>
<tr>
<td align="right">Poblaci&oacute;n:</td>
<td align="left"><input name="localidad" type="text" id="localidad" value="" /></td>
</tr>
<tr>
<td align="right">C&oacute;digo postal:</td>
<td align="left"><input name="cp" type="text" id="cp" value="" /></td>
</tr>
<tr>
<td align="right">Provincia:</td>
<td align="left"><label for="provincia"></label>
<select name="provincia" id="provincia" onchange='enviar_parametros(this.value);'>


<option value="A Coruña">A Coruña</option>
<option value="Álava">Álava</option>
<option value="Albacete">Albacete</option>
<option value="Alicante">Alicante</option>
<option value="Almería">Almería</option>
<option value="Asturias">Asturias</option>
<option value="Ávila">Ávila</option>
<option value="Badajoz">Badajoz</option>
<option value="Baleares (Illes)">Baleares (Illes)</option>
<option value="Barcelona">Barcelona</option>
<option value="Burgos">Burgos</option>
<option value="Cáceres">Cáceres</option>
<option value="Cádiz">Cádiz</option>
<option value="Cantabria">Cantabria</option>
<option value="Castellón">Castellón</option>
<option value="Ceuta">Ceuta</option>
<option value="Ciudad Real">Ciudad Real</option>
<option value="Córdoba">Córdoba</option>
<option value="Cuenca">Cuenca</option>
<option value="Girona">Girona</option>
<option value="Granada">Granada</option>
<option value="Guadalajara">Guadalajara</option>
<option value="Guipúzcoa">Guipúzcoa</option>
<option value="Huelva">Huelva</option>
<option value="Huesca">Huesca</option>
<option value="Jaén">Jaén</option>
<option value="La Rioja">La Rioja</option>
<option value="Las Palmas">Las Palmas</option>
<option value="León">León</option>
<option value="Lleida">Lleida</option>
<option value="Lugo">Lugo</option>
<option value="Madrid">Madrid</option>
<option value="Málaga">Málaga</option>
<option value="Melilla">Melilla</option>
<option value="Murcia">Murcia</option>
<option value="Navarra">Navarra</option>
<option value="Ourense">Ourense</option>
<option value="Palencia">Palencia</option>
<option value="Pontevedra">Pontevedra</option>
<option value="Salamanca">Salamanca</option>
<option value="Santa Cruz de Tenerife">Santa Cruz de Tenerife</option>
<option value="Segovia">Segovia</option>
<option value="Sevilla">Sevilla</option>
<option value="Soria">Soria</option>
<option value="Tarragona">Tarragona</option>
<option value="Teruel">Teruel</option>
<option value="Toledo">Toledo</option>
<option value="Valencia">Valencia</option>
<option value="Valladolid">Valladolid</option>
<option value="Vizcaya">Vizcaya</option>
<option value="Zamora">Zamora</option>
<option value="Zaragoza">Zaragoza</option>


</select></td>

</tr>
<tr>
<td align="right">Tel&eacute;fono:</td>
<td align="left"><input name="telefono" type="text" id="telefono" value="" size="9" /></td>
</tr>
<tr>
<td align="right">e-mail:</td>
<td><input name="email" type="text" id="email" value="" /></td>
</tr>
<tr>
<td rowspan="3" align="right" valign="top">Forma de pago:<img src="../images/credit-cards-logos.png" alt="" width="180" height="53" align="absmiddle" /></td>
<td><input name="fpago" type="radio" id="radio" value="Contrareembolso" checked="checked" />
<label for="fenvio">Contrareembolso</label></td>
</tr>
<tr>
<td><input type="radio" name="fpago" id="radio2" value="Anticipado" />
Transferencia</td>
</tr>
<tr>
<td><input type="radio" name="fpago" id="radio3" value="paypal" />
PAYPAL</td>
</tr>
<tr>
<td rowspan="2" align="right">&nbsp;</td>

</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right">Forma de envio:</td>
<td><select name="fenvio" id="fenvio" onchange='enviar_parametros(this.value);' >
<option value="MRV" >MRV</option>
<option value="Paquete Azul" >Paquete Azul</option>
</select></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input name="id" type="hidden" id="id" value="" />
<input name="portes" type="hidden" id="portes" value="4.9" /></td>
<td><label>
<input name="button7" type="submit" class="boton_rojo" id="button7" value="Validar compra" />
</label></td>
</tr>
<tr>
<td><input name="MM_insert" type="hidden" id="MM_insert" value="form_registro" /></td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</div>
<div id="form_sinregistrar" style="display:">
<table width="100%" border="0" cellspacing="5">
<tr>
<td align="left" class="descripcion_articulos" style="font-size: 14px; font-weight: bold;"> Continuar la compra sin registrarse<br /></td>
</tr>
</table>
  #12 (permalink)  
Antiguo 09/06/2011, 13:29
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

Lo que hago con este script es actualizar un precio segun la provincia.
Por ejemplo, si elijes Las palmas, cambia el valor, ya que es mas caro enviar a Las palmas.

Ahora estoy intentando implantar el envio por correos, al ser mas barato, lo que quiero hacer es calcular el precio para que me lo actualice automaticamente.

Un ejemplo.

Si el envio es a Las palmas por MRV, el precio es de 12 €
Pero si es por correos, el precio es de 3 €

En cambio si es a la peninsula, el precio es de 4.90 si es por MRV y de 2 € si es por correos.

Pero necesito que se actualice antes e enviar el form para que calcule el coste total incluyendo los portes
  #13 (permalink)  
Antiguo 09/06/2011, 13:36
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

La función enviar_parámetros es sin parámetros y NO tienes que repetir el onchange en los select (ya están puestos en los scripts de arriba).


Código HTML:
Ver original
  1. <select name="provincia" id="provincia">

Ves, sin el onchange (tampoco hay que ponerlo en el otro select).

A mí así me va perfectamente.
  #14 (permalink)  
Antiguo 09/06/2011, 14:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

si no pongo ONCHANGE, no me actualiza la pagina enviando el valor.
Si pongo el ONCHANGE en los 2 select si em actualiza la pagina, pero los valores siempre me los envia a provincia, el parametro fenvio, siempre me sale undefined.
  #15 (permalink)  
Antiguo 09/06/2011, 14:44
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Se tiene que enviar si le pones el código del script:

Código Javascript:
Ver original
  1. <script>
  2. function enviar_parametros(valor1,valor2){
  3. location = location.pathname + '?provincia=' + valor1+'&fenvio='+valor2;
  4. }
  5.  
  6. window.onload = function(){
  7.  
  8. var provincia = document.getElementById('provincia');
  9. var fenvio = document.getElementById('fenvio');
  10. provincia.onchange = function(){
  11. enviar_parametros(this.value,fenvio.value);
  12. }
  13.  
  14. fenvio.onchange = function(){
  15. enviar_parametros(provincia.value,this.value);
  16. }
  17. }
  18.  
  19. </script>
  #16 (permalink)  
Antiguo 09/06/2011, 15:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

creo que algo falla.

Recapitulemos....

Lo que necesito es actualizar los select antes de enviar el formulario.

Cuando envio el select de provincia, me envia un valor por GET que cojo y calculo el precio y lo muestro en la web.
Si la provincia es LAS PALMAS el precio es 12 €, si la provincia es Illes balears el precio es 9.95 €
Una vez calculo esto lo sumo al total del importe y le doy al usuario el valor total de la compra, antes de enviar el formulario.

Como he puesto otra forma de envio, pues he creado otro select dentro del mismo form, con lo que necesto es coger ese valor por GET para calcular el precio, segun el transportista.

En lo que tu me dices, siempre que actualizo los select, el valor me lo envia bien, solo que me aparece en ?provincia, ya sea la provincia o feenvio.
  #17 (permalink)  
Antiguo 09/06/2011, 15:32
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Como te pongo yo se envían dos variables, provincia y fenvio. No se que código estás probando.
  #18 (permalink)  
Antiguo 09/06/2011, 15:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

esto es lo que pongo

<script>
function enviar_parametros(valor1,valor2){
location = location.pathname + '?provincia=' + valor1+'&fenvio='+valor2;
}

window.onload = function(){

var provincia = document.getElementById('provincia');
var fenvio = document.getElementById('fenvio');
provincia.onchange = function(){
enviar_parametros(this.value,fenvio.value);
}

fenvio.onchange = function(){
enviar_parametros(provincia.value,this.value);
}
}

</script>

y estos son los select
<select name="provincia" id="provincia" onchange='enviar_parametros(this.value);'>

<select name="fenvio" id="fenvio" onchange='enviar_parametros(this.value);'>

Pero tanto si cambio el select envio como el de provincia el resultado me lo da en ?provincia
  #19 (permalink)  
Antiguo 09/06/2011, 15:45
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Quilate los onchange en los select. Ya no sé como decírtelo.
  #20 (permalink)  
Antiguo 09/06/2011, 15:51
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

Si le quito los ONCHANGE, en cuando cambio el select, no hace nada. se actualiza el valor del select, pero no actualiza la pagina, con lo que no me envia los valores por URL y no puedo capturarlos por GET.
Lo he probado sin y con ONCHAGE
  #21 (permalink)  
Antiguo 09/06/2011, 15:57
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Tiene que funcionar o te está dando algún error de javascript.

Los onchange los estás definiendo ya arriba:

Código Javascript:
Ver original
  1. <script>
  2. function enviar_parametros(valor1,valor2){
  3. location = location.pathname + '?provincia=' + valor1+'&fenvio='+valor2;
  4. }
  5.  
  6. window.onload = function(){
  7.  
  8. var provincia = document.getElementById('provincia');
  9. var fenvio = document.getElementById('fenvio');
  10. provincia.onchange = function(){
  11. enviar_parametros(this.value,fenvio.value);
  12. }
  13.  
  14. fenvio.onchange = function(){
  15. enviar_parametros(provincia.value,this.value);
  16. }
  17. }
  18.  
  19. </script>

Fíjate en provincia.onchange y en fenvio.onchange
  #22 (permalink)  
Antiguo 10/06/2011, 10:44
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

Es tal como te lo he puesto.
Pongo el script y quito los ONCHANGE, pero al cambiar en los select, por supuesto no pasa nada, ya que no hay nada que le indique que tiene que recargar la pagina.

Si pongo los ONCHAGE en los 2 select, cuando cambio uno, me recarga la pagina bien y me envia el dato por URL.

Pero cambie el que cambie, el dato siempre me lo envia a la variable ?provincia y siempre me deja la variable feenvio con undefined.

Un ejemplo.

Si cambio el select PROVINCIA, me recarga la pagina y me envia bien el parametro.
?provincia=Las Palmas?fenvio=undefined.

Ahora cambio el select fenvio, me recarga la pagina y me da esto

?provincia=MRV?fenvio=undefined.

Como puedes comprobar, el dato siempre me lo envia a provincia.
  #23 (permalink)  
Antiguo 10/06/2011, 10:49
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Lo voy a tener que dejar por imposible, lo he probado y funciona como te digo.

Debes estar haciendo algo que hace que falle.

Tendría que funcionar. Sí le dices que refresque la página cuando le pones a location.pathname + '?provincia=' + valor1+'&fenvio='+valor2
  #24 (permalink)  
Antiguo 10/06/2011, 11:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

jajaja, pues si, lo dejamos como imposible.
Coloco otra vez el codigo en la web y te pego lo que me sale en la URL. dame 5 minutos
  #25 (permalink)  
Antiguo 10/06/2011, 11:09
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

Otra cosa que no entiendo...
Como sabe el script cual es el valor1 y valor 2?
  #26 (permalink)  
Antiguo 10/06/2011, 11:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

esto es lo que me manda a la URL cuando cambio el valor del select provincia

http://www.milyunasensaciones.com/ti...incia=Baleares (Illes)&fenvio=undefined

Y esto es lo que me manda a la URL cuando cambio el select fenvio

http://www.milyunasensaciones.com/ti...vincia=Paquete Azul&fenvio=undefined

Como puedes ver da igual el select que cambie, los valores me los pone en ""provincia"
  #27 (permalink)  
Antiguo 10/06/2011, 13:49
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

Quita por favor los onchange de los select para poder ver que falla con el script, porque es normal que te envíe eso si sobrescribes el onchange.
  #28 (permalink)  
Antiguo 10/06/2011, 14:41
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Respuesta: 2 variables

Ya los equitado. Ahora cambio el valor del select provincias y por supuesto, no hace nada.

Para que veas lo que hace sin los ONCHAGE vete a esta web
http://www.milyunasensaciones.com
Haz click en cualquier articulo y despues vete al carrito, veras los 2 select (provincia y envio) y compruebalo por ti mismo que si quito los ONCHANGE la web no se recarga.
Pero esperate 10 minutos que estoy actualizando el server
  #29 (permalink)  
Antiguo 10/06/2011, 15:02
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: 2 variables

¿Sabes por que no funciona?

Tienes un div oculto con un formulario igual con dos selects con los mismos ids, por eso no funciona.

Cuando ponias el onchange en el select directamente te funcionaba porque te refieres al propio elemento, pero con el script utilizamos getElementById y si tienes id's repetidos, sólo coge el primero, en este caso, cogía los selects ocultos.

Tienes dos soluciones:

Ponerle id's distintos o utilizar clases.

Utilizar el onchange en el propio select, pero habría que hacer unos cuantos cambios en la función enviar.

Yo utilizaría la primera y ya que veo que tienes jquery, utilízalo.

Etiquetas: ajax, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:26.