Foros del Web » Programando para Internet » PHP »

Problema con switch, get y while

Estas en el tema de Problema con switch, get y while en el foro de PHP en Foros del Web. Que tal gente de Foros del Web soy nuevo por aca, pero bueno estoy disfrutando de este foro y ayudare en lo que pueda. Por ...
  #1 (permalink)  
Antiguo 21/06/2010, 20:29
 
Fecha de Ingreso: junio-2010
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema con switch, get y while

Que tal gente de Foros del Web soy nuevo por aca, pero bueno estoy disfrutando de este foro y ayudare en lo que pueda.

Por el momento tengo un problema estoy haciendo un script en php y javascript con onchange la cosa esta asi:


en la pagina html tengo lo siguiente

Código HTML:
<?php require_once('test.php');
      genera_form();
   ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
function adjs(url){
    oldsc=document.getElementById("old_sc");
       if(oldsc)
            document.getElementsByTagName('body')[0].removeChild(oldsc);
    sc=document.createElement('script');
    sc.id="old_sc";
    sc.src=url+'&'+Math.random();
    document.getElementsByTagName('body')[0].appendChild(sc);
}
</script>
</head>

<body>
<form >
 <select name="paquete" id="paquete" class="selectInput" onChange="adjs('?p&sel='+this.value)">
<?php 
require_once('bar.php');


                          mysql_select_db($database_bar,$bar);
			              $busqueda = mysql_query("Select distinct nombre_paquete FROM tb_paquetes ");
			              while ($querico = mysql_fetch_array($busqueda)) {	
						  
						
?>

                    <option value="<?php echo $querico['nombre_paquete']; ?>"><?php echo $querico['nombre_paquete']; ?></option>
                   
                   <?php } ?> 
                    
            </select>

					  
           <div id="pp"></div>
           <div id="pp2"></div>
           	</form>	
</body>
</html> 
vemos que desde HEAD tenemos un javascript el cual genera la funcion de que cuando cambiemos algun valor del select devolvera un dato el cual viene desde aca:

Código PHP:
<?php
function genera_form(){
                    
                    if(isset(
$_GET['p'])){
                          
                      switch(
$_GET['sel']){
                      case 
'Escuelas de Iniciacion':
                           
$ret=array('Banamex','Banorte','BBVA','Bancomer','Scotia Bank');
                           
$html2='<br><br><font size=\"-1\">Numero de Referencia&nbsp;</font><input type=\"text\" name=\"no_ref_banco\" id=\"no_ref_banco\"  />';
                           
$html='<br><br><select name=\"banco\" id=\"banco\"  class=\"selectInput\">';
                     
                      break;
                      
                     
       
                      exit;
                   
                    }
                    
                          
           
                    foreach(
$ret as $v)
           
                          
$html.='<option value=\"'.$v.'\">'.$v.'</option>';
           
                          
$html.='</select>';
           
                    echo 
'document.getElementById("pp").innerHTML="'.$html.'";';
                    echo 
'document.getElementById("pp2").innerHTML="'.$html2.'";';
           
                    exit;
           
                    } 
                    
                    

          
          
          }
          
          
?>
EL CODIGO PHP ANTERIOR SI LO PRUEBAN FUNCIONA PERO AL MOMENTO DE REALIZAR UNA CONSULTA A MYSQL CON WHILE COMO EN EL SIGUIENTE EJEMPLO DEJA DE FUNCIONAR USANDO $_GET PERO SI LO REMPLAZO POR ALGUNA VARIABLE FUNCIONA BIEN VERIFIQUEN Y ESPERO PUEDAN AYUDARME GRACIAS¡¡¡
Código PHP:
<?php
   
require_once('bar.php');
   
mysql_select_db($database_bar$bar);
   
$buscando mysql_query("SELECT DISTINCT duracion_paquete FROM tb_paquetes");
  
   
   
   
$p="data";
   
$raro "Escuelas de Iniciacion";
   if(isset(
$p)){
       
       switch(
$raro){
           case 
'Escuelas de Iniciacion':
          
$html="<select>";  
            while(
$row mysql_fetch_array ($buscando)){
             
             
$var $row['duracion_paquete'];
             
$html.= "<option>".$var."</option>";
             
            }
            
$html.="</select>";
            echo 
$html;
            break;
            exit;
            
            
            
       }
   }
   
?>
  #2 (permalink)  
Antiguo 21/06/2010, 20:51
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Problema con switch, get y while

Pon tu busqueda asi:
Código PHP:
$buscando mysql_query("SELECT DISTINCT duracion_paquete FROM tb_paquetes") or die("Error: ".mysql_error()); 
Y nos cuentas como te va.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 21/06/2010, 21:20
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema con switch, get y while

Asi te podria ahorrar bastante y el envio get no fallara.


Código PHP:


//la llamada a la funcion
genera_form();

//la funcion
function genera_form(){
echo $_GET['paquete'];
}

//el envio get
echo '<p /><a href="?enviado=true">Envio get</a>';

?>
<form action="" method="get">
<select name="paquete" id="paquete" class="selectInput" onChange="this.form.submit()">
<option></option>
<option value="valorEnviado">Valor</option>
</select>
</form>
<?php
Deje la llamada a la funcion al principio porque tu la tienes asi, pero la llamada deberia ir luego de la funcion (debajo). Aunque asi funciona, ya que la primera vez que se ejecuta el script dicha, se define.

Última edición por wiwi74; 21/06/2010 a las 21:27

Etiquetas: Ninguno
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 11:03.