Foros del Web » Programando para Internet » PHP »

listas dependientes en php

Estas en el tema de listas dependientes en php en el foro de PHP en Foros del Web. alguien sabe como puedo crear las listas dependientes en php con una base de datos mysql tengo las siguientes tablas ciudad y comunas quiero crear ...
  #1 (permalink)  
Antiguo 06/04/2004, 13:47
 
Fecha de Ingreso: marzo-2004
Mensajes: 40
Antigüedad: 13 años, 8 meses
Puntos: 0
Sonrisa listas dependientes en php

alguien sabe como puedo crear las listas dependientes en php

con una base de datos mysql



tengo las siguientes tablas


ciudad y comunas



quiero crear una lista dependiente con estas dos tablas


si alguien sabe gracias
  #2 (permalink)  
Antiguo 06/04/2004, 16:04
 
Fecha de Ingreso: marzo-2004
Mensajes: 65
Antigüedad: 13 años, 9 meses
Puntos: 0
que tal felipec mira estoy haciendo algo parecido


y tengo el siguiente codigo ojala te sirva



primero al cargar tu pagina debes llenar el primer combo con una consulta


asi mas o menos:---
<html>
<head>
<title>Asignar</title>
</head>

<body>

<? include "librerias/phpsqlserver.lib"; ?>
<form action="" method="post" name="fas">
<label>DIRECCION :</label>
<?php
$cSql="Select clave from dependencias";
$Res=EjecutaSQL($cSql,$lc_Resultado);
?>
<select name="direcbo" size="1" onchange="cargadepto()">
<?php
while ($row=mssql_fetch_array($Res)){
?>
<option value="<? $row['clave']; ?> "> <? print $row['clave']; ?>
</option>
<?
}
?>
</select>
<label>DEPTO. </label>
<select name=deptocbo size="1">
<option value="-">-
</select>
</div></td>
<input name="btnComando " type="submit" id='btnComando ' title="click para un nuevo registro" value="Nuevo">

<input name="btnComando" type="submit" class="FontTable" id='btnComando' value="Buscar">

<input name="btnComando" type="submit" class="FontTable" id='btnComando' value="Cancelar">

</form>
<script language="javascript1.1">
function cargadepto(){
var i;
var i=0;
var tam,x;
tam=0;
var mis_dptos= new Array();
var num_dptos;
num_dptos=0;
<?php
$cSqll="Select ClaveDepto from departamentos";
$Res1=EjecutaSQL($cSqll,$lc_Resultadoo);
while ($roww=mssql_fetch_array($Res1)){
?>
mis_dptos[tam]='<?print $roww["ClaveDepto"];?>'
tam++;
<?php
}
?>
num_dptos=mis_dptos.length;
if (num_dptos>0){
document.fas.deptocbo.length = num_dptos;
for(i=0;i<num_dptos;i++){
document.fas.deptocbo.options[i].value=mis_dptos[i]
document.fas.deptocbo.options[i].text=mis_dptos[i]
}//fin del for
}//fin del if
else{
document.fas.deptocbo.length = 1
//coloco un guión en la única opción que he dejado
document.fas.deptocbo.options[0].value = "-"
document.fas.deptocbo.options[0].text = "-"
}
}
</script>
</body>
</html>




ojala te sirva mis conexiones las hago en sql server 2000 pero son parecidas a mysql solo adaptalas ahhhh
existe por ahi en errorcillo si te das cuenta que no pongo una condicion en la consulta... eso aun no me queda ojala si sabes de alguien que pueda solucionarlo tambien me mandes un msg.. me seria de gran utilidad
  #3 (permalink)  
Antiguo 08/04/2004, 13:52
 
Fecha de Ingreso: marzo-2004
Mensajes: 40
Antigüedad: 13 años, 8 meses
Puntos: 0
Sonrisa gracias

no te preocupes ya lo resolvi con este codigo


aqui lo subo por si a alguien lo puede ayudar



<?

$stdout ="";

$stdout.="<form name=\"envio\">\n";
//************************************************** ***********************//
$stdout.=" <select name='programa' onChange='UpdateRamos();'>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";

$stdout.=" </select>\n";

//************************************************** ************************//


//************************************************** **************************//
$stdout.=" <select name='ramo'>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" <option>-------------------------------</option>\n";
$stdout.=" </select>\n";
//************************************************** ***************************
$stdout.="</form>";

//************************************************** ************************************//


$stdout.="<script TYPE=\"text/javascript\" LANGUAGE=\"JavaScript\">\n";

$result=mysql_query ("SELECT id_programa, nombre FROM programas ORDER BY id_programa");
$total=mysql_num_rows($result);
$i=0;
$text1 = "Programasdesc = new Array(";
$text2 = "Programas = new Array(";

$text1.= "\"Elija una programa\",";
$text2.= "\"none\",";
while ($dat=mysql_fetch_row($result))
{
if ($i!=0)
{
$text1.=", ";
$text2.=", ";
}
$text1.= "\"$dat[1]\"";
$text2.= "\"$dat[0]\"";
$i=1;
}
$text1.=")\n";
$text2.=")\n";

$stdout.= $text1;
$stdout.= $text2;

$stdout.="Ramos = new Object();\n";
$stdout.="Ramosdesc = new Object();\n";
$stdout.="Ramos[\"none\"]= new Array(\"none\");\n";
$stdout.="Ramosdesc[\"none\"]= new Array(\"Elija una Ramo\");\n";

$result=mysql_query ("SELECT id_programa, nombre FROM programas ORDER BY id_programa");
$total=mysql_num_rows($result);
for ($i=0;$i<$total;$i++)
{
$dat=mysql_fetch_row($result);
$padre=$dat[1];
$id_padre=$dat[0];

$text1 = "Ramos[\"$id_padre\"] = new Array(";
$text2 = "Ramosdesc[\"$id_padre\"] = new Array(";
$k=0;

$result2=mysql_query ("SELECT id_ramo, nombre FROM ramos WHERE id_programa='$id_padre' ORDER BY nombre");
while ($datos=mysql_fetch_row($result2))
{
if ($k!=0)
{
$text1.=", ";
$text2.=", ";
}
$text1.= "\"$datos[0]\"";
$text2.= "\"$datos[1]\"";
$k=1;

}

$text1.=");\n";
$text2.=");\n";

$stdout.= "$text1";
$stdout.= "$text2\n";
}

$stdout.= " for (i=0;i<Programas.length;i++) document.forms['envio'].elements[\"programa\"][i] = new Option(Programasdesc[i], Programas[i]);\n";
$stdout.= " document.forms['envio'].elements[\"programa\"].selectedIndex = 0;\n";


$stdout.= " function UpdateRamos() {\n";
$stdout.= " document.forms['envio'].elements[\"ramo\"].length=0;\n";
$stdout.= " country = document.forms['envio'].elements[\"programa\"];\n";
$stdout.= " ccode = new String(country.options[country.selectedIndex].value);\n";

$stdout.= " if (Ramos[ccode]) {\n";
$stdout.= " document.forms['envio'].elements[\"ramo\"][0] = new Option(Ramosdesc[ccode][0], Ramos[ccode][0], 1, 1);\n";
$stdout.= " for (i=1;i<Ramos[ccode].length;i++) document.forms['envio'].elements[\"ramo\"][i] = new Option(Ramosdesc[ccode][i], Ramos[ccode][i]);\n";
$stdout.= " }\n";
$stdout.= " }\n";
$stdout.= " UpdateRamos();\n";
$stdout.= "</script>\n";



echo "$stdout";
?>
  #4 (permalink)  
Antiguo 10/04/2004, 20:51
 
Fecha de Ingreso: abril-2004
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
Hola, vi el codigo que enviaron de las listas enlazadas, y estuve revisando el último ya arreglado(el de felipec), y bien me sirvio para mi caso, obteniendo los valores de la BD, pero soy nueva en esto y no sé en que parte de ese código capturo los valores, es decir en que variable queda lo que selecciono en la primera lista (programas) y lo de la segunda(ramos)...tengo que usar una lógica luego pero no se donde quedan los valores, si me pueden ayudar se los agradecería.........
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 22:08.