Foros del Web » Programando para Internet » Javascript »

Combo dependiente de las Faqs adaptado al php

Estas en el tema de Combo dependiente de las Faqs adaptado al php en el foro de Javascript en Foros del Web. Hola a todos apañeros!! Estoy utilizando los combos dependientes o anidados que aparece de primeras en las Faqs. Pero no consigo que me funcione correctamente. ...
  #1 (permalink)  
Antiguo 22/01/2007, 04:04
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
Pregunta Combo dependiente de las Faqs adaptado al php

Hola a todos apañeros!!

Estoy utilizando los combos dependientes o anidados que aparece de primeras en las Faqs. Pero no consigo que me funcione correctamente. No sé si debo preguntarlo aquí o en PHP, porque no sé cual es el fallo

Os adjunto el código que he usado para ver si hay alguien que me pueda descubrir cual es el fallo.

Un saludo a todos de antemano!!!

Código HTML:
<script language="JavaScript"> 

   function addOpt(oCntrl, iPos, sTxt, sVal){ 
     var selOpcion=new Option(sTxt, sVal); 
     eval(oCntrl.options[iPos]=selOpcion); 
   } 

   function cambia(oCntrl){ 
    while (oCntrl.length) oCntrl.remove(0); 
    switch (document.frm.poblacion.selectedIndex){ 
	/*Hacemos una consulta para sacar todas las fechas y las vamos a agrupar para que no se repitan, y ordenarlas  ascendentemente.*/
     <?php
	 $sql_pobla= "select id_fecha
	 from grupos
	 where activo='si'
	 group by id_fecha
	 order by id_fecha";
	 $result_pobla=mysql_query("$sql_pobla",$link) or die(mysql_error());
	 
	 $j=0;
	 while($row_pobla=mysql_fetch_array($result_pobla)) 
    { 
		$id_fecha=$row_pobla["id_fecha"];
		
	 ?>
	 /* Una vez sacado las fechass, realizamos un bucle para que se vallan imprimiendo en el case, y cada vez que se realiza el bucle muestra la siguiente fecha.*/
     case <?php echo $j; $j++; ?>: 
	/*hacemos una consulta para sacar la fecha y el nombre del grupo  donde coincida fecha con la fecha sacada en la anterior consulta para  que no me imprima todos los resultados. En todos los selects, es necesario poner las comitas simples cuando cojemos una variable que viene de otra consulta.*/
	 <?php 
	 $sql_restaurante="select id_grupo, titulo
	  from grupos
	  where id_fecha='$id_fecha'";
	  
	  $result_restaurante=mysql_query("$sql_restaurante",$link) or die(mysql_error());
	$n=0; 
	while($row_restaurante=mysql_fetch_array($result_restaurante)) {
		$nombre_grupo=$row_restaurante["titulo"];
        $id_grupo=$row_restaurante["id_grupo"]; 
		?>
		/*necesitamos sacar la posición  de los restaurantes para saber su orden, para ello cada vez que se imprime , suma una posición al restaurante. */
	    addOpt(oCntrl, <? echo $n;?>, "<?php echo $nombre_grupo; ?>", "<?php echo $id_grupo; ?>");
        <?php $n++; 
	  }?>
      break; 
	  <?php 
	  }
	  ?>
    } 
   } 
  </script> 
[HTML]
<form action="fotografias_campos.php" method="post" name="frm">
<div class="negro_10_verdana" style=" margin-left:23px; margin-top:15px ">

Seleccione una Fecha:

<!-- Realizamos la misma consulta k hemos echo anteriormente en el javascript, para sacar las fechas agrupadas y orenadas, -->							
							<?php  
    $sql=("select id_grupo, id_fecha
	from grupos
	where activo='si'
	group by id_fecha
	order by id_fecha");
    $result=mysql_query("$sql",$link) or die(mysql_error());
    ?> 
        <select  name="fecha" class="campos_formulario" onChange="cambia(document.frm.grupo)"> 
    <?
	$p=0;
    while($row=mysql_fetch_array($result)) 
    { 
		$id_fecha=$row["id_fecha"];
        $fecha=$row["fecha"];
		
		$sql_fecha="select fecha
					from fechas
					where id_fecha='$id_fecha'";
		$result_fecha=mysql_query($sql_fecha)or die(mysql_error()); 
		while($row_fecha=mysql_fetch_array($result_fecha)){
		$fecha=$row_fecha["fecha"];
		$fecha_sep=explode("-", "$fecha");
		$dia=$fecha_sep[2];
		$mes=$fecha_sep[1];
		$year=$fecha_sep[0];
        ?> 
		<!-- Desde akí, imprimimos la id_fecha, y le asignamos la fecha que le corresponda para k lo escriba en vista al público.-->
            <option value="<? echo $id_fecha; $p++; ?>"> <?php echo $dia."-".$mes."-".$year; ?></option>
<?
	}

}
?>
   </select>

</div>
													
													
<div style=" margin-left:23px; margin-top:17px ">
<span class="negro_10_verdana">Escoje un grupo: </span><br>
  <!-- Sacamos el nombre de los grupos ordenador por la fecha que les corresponde pero con limite 1, para que sólo muestre uno y no todos.-->                        
						        <?php  
    $sql_res="select id_grupo, titulo
	from grupos
	where activo='si'
	order by id_fecha asc
	limit 1";
    $result_res=mysql_query("$sql_res",$link) or die(mysql_error());
    ?> 
        <select name="grupo" class="campos_formulario"> 
    <? 
    while($row_res=mysql_fetch_array($result_res)) 
    {  
		$id_grupo=$row_res["id_grupo"];
        $titulo=$row_res["titulo"];
        ?> 
            <option value="<? echo $id_grupo; ?>"> <? echo $titulo; ?> </option> 
        <? 
    } ?>
   </select>
    <input name="titulo" type="hidden" id="titulo" value="<?php echo $titulo; ?>"> </div>
														
														
<div class="negro_10_verdana" style=" margin-left:23px; margin-top:16px ">
fotografias  varias, poner scroll capa</div>
</form> 
[/HTML]
  #2 (permalink)  
Antiguo 22/01/2007, 15:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Combo dependiente de las Faqs adaptado al php

Mmm.. quizás deberías poner tu código ya interpretado por PHP.exe, porque muchos foreros no tienen un servidor en su máquina.

De todas maneras, aunque tuviéramos un servidor, no tendríamos una base de datos como la tuya.

Prueba a postear el código interpretado HTML puro, seguro que podemos hacer algo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 21:41.