Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Modificar funcion

Estas en el tema de Modificar funcion en el foro de Jquery en Foros del Web. Hola a todos tengo el siguiente codigo para trabajar con select multiples todo bien ... pero estoy intentando meter dos parametros en una funcion para ...
  #1 (permalink)  
Antiguo 18/09/2014, 21:26
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Modificar funcion

Hola a todos tengo el siguiente codigo para trabajar con select multiples todo bien ... pero estoy intentando meter dos parametros en una funcion para que mi query tenga dos variables...
Código HTML:
<script language="javascript">
$(document).ready(function(){
	// Parametros para e combo1
   $("#combo1").change(function () {
   		$("#combo1 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo1.php", { elegido: elegido }, function(data){
				$("#combo2").html(data);
				$("#combo3").html("");
			});			
        });
   })
…

	// Parametros para el combo3
	$("#combo3").change(function () {
   		$("#combo3 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo3.php", { elegido: elegido }, function(data){
				$("#combo4").html(data);
			});		ACA ME GUSTARIA MANDAR NUEVAMENTE combo1.php	
        });
   })
});
</script> 


Mi primer select lo lleno con una consulta apartir de estatus llenare el segundo select

Código HTML:
<select name="combo1" id="combo1" >
  <option text="0">Seleccionar</option>
$consulta = $db->consulta("SELECT * FROM estatus ");
if ($row = $db->fetch_array($consulta)) {
	do {
		echo 
		'<option value="'.$row[estatus].'">'.$row[estatusg].'</option>';
	}while($row = $db->fetch_array($consulta));
}
?> 
      </select>
              <select name="combo2" id="combo2" >
</select>  
      </select>
              <select name="combo3" id="combo3" >
</select> 
este es mi primer PHP
Combo1.php
$consulta = $db->consulta("SELECT * FROM promociones WHERE estatus LIKE '$_POST[elegido]' ");
echo '<option value="0">Seleccione un elemto</option> ';
if ($row = $db->fetch_array($consulta)) {
do {
echo
'<option value="'.$row['idlpromocion'].'">'.htmlentities($row['promocion']).'</option>';
}while($row = $db->fetch_array($consulta));
}

Como mencione antes todo funciona bien... pero necesito en mi combo3 pasar 2 parametros a mi query es decir... Where campo1 LIKE '$_POST[elegido]' and campo2 LIKE '$_POST[elegido]' (aca no se como manipulat mi funcion para mandar 2 paramentros)


ojala me puedan ayudar
  #2 (permalink)  
Antiguo 18/09/2014, 21:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Modificar funcion

Cuando te refieres a mandar dos parámetros a través de una función, ¿te refieres al callback del método $.post?

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 18/09/2014, 22:21
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

Cita:
Iniciado por Alexis88 Ver Mensaje
Cuando te refieres a mandar dos parámetros a través de una función, ¿te refieres al callback del método $.post?

Saludos

sip Alexis necesito pasarle 2 parametros hizo esto

Código HTML:
 // Parametros para el combo2
	$("#combo03").change(function () {
   		$("#combo03 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo03.php", { elegido: elegido }, function(data){
				$("#combo04").html(data);
			}
			
			);	
			elegido2=$(this).val();
				$.post("combo1.php", { elegido2: elegido }, function(data){
				$("#combo04").html(data);
			}
			
			);	
				
        });
   })
y mi consulta asi
SELECT * FROM tabla2 WHERE campo1 LIKE '$_POST[elegido]' and campo2 LIKE '$_POST[elegido2]'


pero en el input final solo me muestra
Seleccione un elemto

que es lo del combo1.php
  #4 (permalink)  
Antiguo 19/09/2014, 00:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Modificar funcion

En tu código original, veo que ejecutas una función por cada vez que se elija un valor del combo 1 y haces algo muy similar con el combo 3. Lo que puedes hacer es almacenar ese conjunto de instrucciones en una función nombrada y luego simplemente la invocas:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     function foo() {
  3.         $("#combo1 option:selected").each(function (){
  4.             $.post("combo1.php", { elegido: $(this).val() }, function(data){
  5.                 $("#combo2").html(data);
  6.                 $("#combo3").html("");
  7.             });        
  8.         });
  9.     }
  10.  
  11.     $("#combo1").change(foo);
  12.  
  13.     $("#combo3").change(function () {
  14.         $("#combo3 option:selected").each(function (){
  15.             $.post("combo3.php", { elegido: $(this).val() }, function(data){
  16.                 $("#combo4").html(data);
  17.             });    
  18.             foo(); //Ejecutas la función relacionada al combo 1
  19.         });
  20.     });
  21. });

En las líneas 5 y 6, siempre reemplazas el valor del combo 2 por cada respuesta recibida y el combo 3 queda vacío. No le veo mucho sentido a eso, creo que deberías de replantear lo que buscas hacer en esa parte.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 19/09/2014, 08:40
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

Gracias Alexis pero tengo una duda como mando mis parametros a mi query
  #6 (permalink)  
Antiguo 19/09/2014, 09:11
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Modificar funcion

Briss , te comento lo que yo entiendo que queres hacer, que cuando selecionas una opcion del combo1 , se carguen las opciones en el combo2, pero a su vez que se refresque el combo1(y aca es donde queres enviar el segundo parametro), es asi o interprete cualquier cosa?
Y si es asi, porque queres refrescar el combo1?
  #7 (permalink)  
Antiguo 19/09/2014, 09:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

Intento lo siguiente en mi select mando dos valores en option

'<option value="'.$row['periodo'].'/'.$row['programa'].'">'



Aca separo mis elementos
Código HTML:
<script language="javascript">
var option_result = document.getElementById("combo2").value;
var option_array=option_result.split("/");
document.getElementById('uno').value = option_array[0];
document.getElementById('dos').value = option_array[1];
</script> 


Pero aca no se como mandar en post uno y dos para despues en mi query comparar
Código HTML:
$("#combo03").change(function () {
   		$("#combo03 option:selected").each(function () {
			//alert($(this).val());
				elegido2=$(this).val();
				$.post("combo03.php", { elegido2: elegido2 }, function(data){
				$("#combo04").html(data);
			}
			
			);	
			
				
        });
   })
  #8 (permalink)  
Antiguo 19/09/2014, 09:21
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Modificar funcion

Código:
//aca recuperas los valores que antes seteaste
var v_uno = $('#uno').val();
var v_dos = $('#dos').val();


$("#combo03").change(function () {
   		$("#combo03 option:selected").each(function () {
			//alert($(this).val());
				elegido2=$(this).val();
//aca le agregas los dos paramtetros nuevos
				$.post("combo03.php", { elegido2: elegido2,p_uno:v_uno,p_dos:v_dos }, function(data){
				$("#combo04").html(data);
			}
			
			);			
				
        });
   })
o vos queres llamar otravez a combo01.php?
en ese caso le agregas luego
Código:
$.post("combo01.php", { p_uno:v_uno,p_dos:v_dos }, function(data){
				$("#combo04").html(data);
			}
			
			);

en ambos casos combo01 - 03.php vas a recibir los parametros como $_POST['p_uno'] y $_POST['p_dos']

Espero tu respuesta
  #9 (permalink)  
Antiguo 19/09/2014, 09:24
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

Cita:
Iniciado por diurno10 Ver Mensaje
Briss , te comento lo que yo entiendo que queres hacer, que cuando selecionas una opcion del combo1 , se carguen las opciones en el combo2, pero a su vez que se refresque el combo1(y aca es donde queres enviar el segundo parametro), es asi o interprete cualquier cosa?
Y si es asi, porque queres refrescar el combo1?

no tanto como refrescar el valor de combo1 sino mas bien pasar lo que tiene....
necesito pasarle el parametro del combo2 pero tambien el del combo1 a mi consulta
  #10 (permalink)  
Antiguo 19/09/2014, 09:41
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Modificar funcion

Código:
esto esta bien nada mas que le falta el segundo parametro a la segunda llamada
 // Parametros para el combo2
	$("#combo03").change(function () {
   		$("#combo03 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo03.php", { elegido: elegido }, function(data){
				$("#combo04").html(data);
			}
			
			);	
			elegido2=$(this).val();
				$.post("combo1.php", { elegido: elegido ,elegido2: elegido2 }, function(data){
				$("#combo04").html(data);
			}
			
			);	
				
        });
   })
  #11 (permalink)  
Antiguo 19/09/2014, 10:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

Cita:
Iniciado por diurno10 Ver Mensaje
Código:
esto esta bien nada mas que le falta el segundo parametro a la segunda llamada
 // Parametros para el combo2
	$("#combo03").change(function () {
   		$("#combo03 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo03.php", { elegido: elegido }, function(data){
				$("#combo04").html(data);
			}
			
			);	
			elegido2=$(this).val();
				$.post("combo1.php", { elegido: elegido ,elegido2: elegido2 }, function(data){
				$("#combo04").html(data);
			}
			
			);	
				
        });
   })
Amigo probe con esto pero nada manda al combo1 aparece solo la leyenda seleccione.... obviamente no hay resultados por la query...
  #12 (permalink)  
Antiguo 19/09/2014, 10:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

Cita:
Iniciado por diurno10 Ver Mensaje
Código:
//aca recuperas los valores que antes seteaste
var v_uno = $('#uno').val();
var v_dos = $('#dos').val();


$("#combo03").change(function () {
   		$("#combo03 option:selected").each(function () {
			//alert($(this).val());
				elegido2=$(this).val();
//aca le agregas los dos paramtetros nuevos
				$.post("combo03.php", { elegido2: elegido2,p_uno:v_uno,p_dos:v_dos }, function(data){
				$("#combo04").html(data);
			}
			
			);			
				
        });
   })
o vos queres llamar otravez a combo01.php?
en ese caso le agregas luego
Código:
$.post("combo01.php", { p_uno:v_uno,p_dos:v_dos }, function(data){
				$("#combo04").html(data);
			}
			
			);

en ambos casos combo01 - 03.php vas a recibir los parametros como $_POST['p_uno'] y $_POST['p_dos']

Espero tu respuesta

Estoy probando asi...
mi query quedo
SELECT * FROM... WHERE . periodo LIKE '$_POST[p_uno]' and programa LIKE '$_POST[p_dos]' "

pero nada
  #13 (permalink)  
Antiguo 19/09/2014, 11:03
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

diurno10 con el código de los inputs cheque y no pasa los valores hice la prueba con un input definiendo su valor desde el inicio y si funciona....


mi pregunta es como puedo hacer para tomar los valores de uno y dos .... ya que los esta tomando vació y no despues de pasarle sus valores
  #14 (permalink)  
Antiguo 19/09/2014, 11:22
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Modificar funcion

diurno10 parece que ya quedo mil gracias abrazos

Etiquetas: funcion, html, javascript, modificar, 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 14:25.