Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] pasar 2 parametros onchange a metodo js

Estas en el tema de pasar 2 parametros onchange a metodo js en el foro de Javascript en Foros del Web. Hola, Como parte de un SELECT, y usando el evento "onChange", estoy tratando de pasar 2 parámetros como parte de la llamada a una función ...
  #1 (permalink)  
Antiguo 31/05/2013, 11:08
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
pasar 2 parametros onchange a metodo js

Hola,

Como parte de un SELECT, y usando el evento "onChange", estoy tratando de pasar 2 parámetros como parte de la llamada a una función JS y no consigo que el primero (this.form) quede definido. Así llamo a la función:

Código PHP:
Ver original
  1. Cambiar estado <select name="miTStatus" style="width:60%" onChange="changeiStatus(this.form, '<?php echo $ticketID; ?>')">
  2. <option value="0">-- Elegir --</option>
  3. <?php
  4.     foreach($statesCol as $i){
  5.         if($istatusRow[$i] == 1){
  6.             $aux = utf8_encode($i);
  7.             echo "<option value='$aux'>".utf8_encode($i)."</option>";
  8.         }
  9.     }
  10.     ?>
  11. </select><br>

Y esta es la función JS:

Código Javascript:
Ver original
  1. function changeiStatus(formselect, numticket){
  2.     var destinyURL = "./iFillStatusForm.php";
  3.     if(formselect.miTStatus.selectedIndex != 0){
  4.         location.href = destinyURL + '?statusvalue='+formselect.miTStatus.options[formselect.miTStatus.selectedIndex].value;
  5.     }
  6. }

Lo que no entiendo es porqué si quito la variable PHP y envío solo el this.form FUNCIONA.

¿Podrían decirme dónde estoy cometiendo mi error?

Gracias.
  #2 (permalink)  
Antiguo 31/05/2013, 11:25
Avatar de lucarto  
Fecha de Ingreso: noviembre-2011
Ubicación: Neiva
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Hola que tal, como vas?

por que no lo realizas por medio de Jquery, la función seria muy sencilla, aquí te dejo el código

Código HTML:
Ver original
  1.     $(function(){
  2.         $("#miTStatus").change(function(){
  3.            var destinyURL = "./iFillStatusForm.php";
  4.            var valSelect = $("#miTStatus").val();
  5.            if(valSelect != 0){
  6.                location.href = destinyURL + '?statusvalue=' + valSelect;
  7.            }
  8.         });
  9.     });
  10.  
  11. Cambiar estado
  12. <select name="miTStatus" style="width:60%" id="miTStatus">
  13.     <option value="0">-- Elegir --</option>
  14.     <?php
  15.    foreach($statesCol as $i){
  16.        if($istatusRow[$i] == 1){
  17.            $aux = utf8_encode($i);
  18.            echo "<option value='$aux'>".utf8_encode($i)."</option>";            
  19.         }
  20.     }
  21.     ?>

Saludos.

Lucarto
  #3 (permalink)  
Antiguo 31/05/2013, 15:30
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Lucarto,

Con el código jQuery que me has pasado funciona, pero tal como está solo estoy pasando una de las 2 variables :(

¿Habría alguna manera de pasar también la que yo tenía identificada como numticket en JS? Es que tal como está hace lo mismo que ya hacía yo antes

Gracias, por cierto. Que no había dicho nada.
  #4 (permalink)  
Antiguo 31/05/2013, 16:18
Avatar de lucarto  
Fecha de Ingreso: noviembre-2011
Ubicación: Neiva
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Hola, cual seria el segundo parámetro que no lo veo, por que es fácil de pasarlo, puedes explicarme??

Saludos.

Lucarto.
  #5 (permalink)  
Antiguo 31/05/2013, 16:37
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Buenas,

De los 2 parámetros que había en la anterior función "onChange"

onChange="changeiStatus(this.form, '<?php echo $ticketID; ?>')

el primero es el que estamos ya pasando OK ahora mismo. El 2º es el que está indicado en HTML como $ticketID y en JS como "numticket":

changeiStatus(formselect, numticket)

Y una cosilla más. Tengo ahora mismo todo el código en el mismo fichero. ¿Qué tendría que cambiar en el código que me pasaste para poder trasladar la función jQuery a otro fichero/librería?

Gracias una vez más.
  #6 (permalink)  
Antiguo 01/06/2013, 12:04
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Lucarto,

Conseguiste desentrañar cómo pasar también la otra variable?

¿Cualquiera que pueda ayudarme? Es que no quiero meterle más presión a Lucarto.
  #7 (permalink)  
Antiguo 04/06/2013, 13:01
Avatar de lucarto  
Fecha de Ingreso: noviembre-2011
Ubicación: Neiva
Mensajes: 17
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Hola me había ocupado en unas cosas del trabajo que no me daba tiempo de pasarme por aquí, este seria el código que necesitas, revisarlo y me avisas.

Código PHP:
Ver original
  1. <script>
  2.     $(function(){
  3.         $("#miTStatus").change(function(){
  4.            var destinyURL = "./iFillStatusForm.php";
  5.            var variable2 =  "<?php echo $ticketID; ?>";//esta seria el nombre la variable que requieres
  6.            var valSelect = $("#miTStatus").val();
  7.            if(valSelect != 0){
  8.                location.href = destinyURL + '?statusvalue=' + valSelect;
  9.            }
  10.         });
  11.     });
  12. </script>
  13.  
  14. Cambiar estado
  15. <select name="miTStatus" style="width:60%" id="miTStatus">
  16.     <option value="0">-- Elegir --</option>
  17.     <?php
  18.     foreach($statesCol as $i){
  19.         if($istatusRow[$i] == 1){
  20.             $aux = utf8_encode($i);
  21.             echo "<option value='$aux'>".utf8_encode($i)."</option>";            
  22.         }
  23.     }
  24.     ?>
  25. </select>

si quieres pasar el código a un archivo externo entonces lo mas seguro es que pases la variable que deseas a un campo oculto y por jquery lo leas. por que si lo realizas en un archivo externo es posible que no te lo leas por lo que es php y el archivo seria js.

Saludos

Lucarto
  #8 (permalink)  
Antiguo 05/06/2013, 15:23
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: pasar 2 parametros onchange a metodo js

Lucarto,

Se pasan correctamente ambos campos. Aunque he tenido que poner abajo del todo del fichero php el script ya que de lo contrario no encontraba la manera de que la variable php tuviera contenido; y también está el tema de que lo tengo en el mismo fichero, y mira que he intentado pasarlo a mi "biblioteca" de funciones no_php.

No obstante en tu ausencia estuve buscando como hacerlo con ventanas modales, con las que puedo conseguir un aspecto bastante chulo y, en cuanto tenga algo de tiempo para perfeccionarlo (el curro me absorbe muchas horas) lo intentaré.

Muchas, muchas gracias!!

Etiquetas: js, metodo, onchange, parametros, php, select
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:38.