if (selecteditem == 'Otras') {newZona = "";while (newZona == ""){newZona=prompt ("Por favor indica el nombre de la zona.", "");}if (newZona != null) {passText(newZona) }
Hola JuliusRisi:Puedes incluirlo en la BD el valor "otras"? Eso sería una opcion, y otra que se me ocurre seria, justo antes o despues de la consulta a la BD, ponerlo en codigo Html con lo típico... "<option>...... </option>" (P.D...perdon por la tardanza...) Bienvenida Gaviotica:Exactamente donde tienes problemas en el código?. Te comento lo mismo que anteriormente dije... Este mismo problema está comentado en el foro de JavaScript, que combinado con lo ya dicho aqui, no creo que hayan complicaciones... pero si aun así las hay, comenta donde necesitas ayuda...Un saludo Slimer
Tienes dos select (o tres o los que quieras), y quieres que depende de lo que elijas en la primera opcion (Pais en tu caso), en el segundo select ponga estado, o ciudad, (o lo que quieras,,, puedes encadenarlo a tu gusto...). Un ejemplo sería el siguiente, siendo el primer Select, para el Pais, y el segundo select para la ciudad.CODE <form name="f1"> <select name=pais onchange="cambia_provincia()"> <option value="0" selected>Seleccione... <option value="1">España <option value="2">Argentina <option value="3">Colombia <option value="4">Francia </select> <select name=provincia> <option value="-">- </select> </form> Hasta aqui hemos creado el primer SelectCODE var provincias_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Castilla y León","Castilla-La Mancha","...") var provincias_2=new Array("-","Salta","San Juan","San Luis","La Rioja","La Pampa","...") var provincias_3=new Array("-","Cali","Santamarta","Medellin","Cartagena","...") var provincias_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Gironde ","...") Con esto creamos los arrays del segundo selectCODE function cambia_provincia(){ var pais pais = document.f1.pais[document.f1.pais.selectedIndex].value if (pais != 0) { mis_provincias=eval("provincias_" + pais) num_provincias = mis_provincias.length document.f1.provincia.length = num_provincias for(i=0;i<num_provincias;i++){ document.f1.provincia.options.value=mis_provincias document.f1.provincia.options.text=mis_provincias } }else{ document.f1.provincia.length = 1 document.f1.provincia.options[0].value = "-" document.f1.provincia.options[0].text = "-" } document.f1.provincia.options[0].selected = true } Y con esto decimos que depende de lo que hayamos puesto en el primer select, tiene que aparecer en el segundo...Esto es un ejemplo "simple" de como hacerlo. Si te das cuenta, los arrays los he introducido manualmente. Lo que tienes que hacer es una consulta a tu BD CODE <?phpwhile($row = mysql_fetch_array($result)) { echo "<option value=".$row["valor"].">".$row["enunciado"]."</option>"; } ?> Despues si no me equivoco, solo nos queda pasar la consulta de php a JavaScriptPara esto hay que "introducir" JavaScript dentro de PHP.CODE <?php$javascript = "<script language=\"JavaScript\">\n";$javascript .= " var array_js = new Array();\n"; //aqui nos conectariamos a la base de datos,,, a tu gusto!!!!! Yo uso algo asi:include("conexion_bd.php");$link=Conexion(); $valores=mysql_query("select * from columna",$link) or die (mysql_error());$contador = 0;while ($elem = mysql_fetch_array($valores)) { $javascript .="columna[".$contador."] = ".$elem['columna2'].";\n"; $contador++; }$javascript .= "</script>\n"; echo $javascript;?>
Hola Gaviotica:Por lo que entiendo, tu quieres conectarte a una BD mysql para que en un Select te salga lo que contiene la BD.Soy de los que piensa que para aprender necesitas "pistas" u "orientaciones" y que no te lo tienen que dar hecho, por lo que te lanzo lo siguiente.(Ya estas conectada a tu BD mysql por lo que no te digo mas o menos como...)Dentro del Select, en vez de enumerar las opciones, prueba con algo como esto:Código: Text <select name="pais" id="selectPais"><option> </option> VACIO<? mysql_data_seek ($result,0); // Con esto nos ponemos cada vez que entremos en la primera posición de la BD while ($row = mysql_fetch_array($result)) { echo "<opcion value=".$row["columna1"].">".$row["valor1"]."</opcion>"; }?></select> De esta forma tienes resuelta la conexión en PHP a una BD.Aquí hay algunos ejemplos (algunos sin depurar) pero que te pueden dar ideas (todos estos estan en el lado de JScript)Código: Text <html><head><title>Consulta de BD con JavaScript y PHP</title><head><script language="JavaScript">function funciona() { numero = porcentajes.length; document.formulario.select1.length = numero; for (i=0; i<numero; i++){ document.formulario.select1.options[i].value = valor_por[i]; document.formulario.select1.options[i].text = porcentajes[i]; }}</script> <script language="JavaScript">function tessto() { var valoracion = parseInt(document.formulario.select1[document.formulario.select1.selectedIndex].value);var restado = (100 - valoracion); if ( valoracion != 100) { document.formulario.select2.length = numero; for (i=0; i<numero; i++){if (valor_por[i] <= restado){ document.formulario.select2.options[i].value = valor_por[i]; document.formulario.select2.options[i].text = porcentajes[i]; }}}} </script> </head><body onLoad="funciona()"><?php$javascript = "<script language=\"JavaScript\">\n"; //activamos Java dentro de PHP$javascript .= " var porcentajes = new Array();\n"; //Creamos el Array vacio$javascript .= " var valor_por = new Array();\n"; //Creamos otro Array vacioinclude("conect.php"); //Incluimos un fichero$link=Conectarse(); // Nos conectamos a la BD$porcentajes=mysql_query("select * from porcentaje",$link) or die (mysql_error()); // hacemos consulta y metemos valores en $porc $contador = 0;while ($elem = mysql_fetch_array($porcentajes)) { $javascript .="porcentajes[".$contador."] = ".$elem['porcentaje_n'].";\n"; // asignamos valores al array. Estructura Array[i] = valor $javascript .="valor_por[".$contador."] = ".$elem['porcentaje_v'].";\n"; $contador++; }$javascript .= "</script>\n"; //cerramos JavaScriptecho $javascript;?> <form name="formulario"> <select name="select1" onchange= "tessto()"> <!-- option value ="-">- !--> </select> <select name="select2"> </select> <select name="select3"> </select> <select name="select4"> </select> <select name="select5"> </select> <input type="text" name="texto"> </form></body></html> CitarTienes dos select (o tres o los que quieras), y quieres que depende de lo que elijas en la primera opcion (Pais en tu caso), en el segundo select ponga estado, o ciudad, (o lo que quieras,,, puedes encadenarlo a tu gusto...). Un ejemplo sería el siguiente, siendo el primer Select, para el Pais, y el segundo select para la ciudad.CODE <form name="f1"> <select name=pais onchange="cambia_provincia()"> <option value="0" selected>Seleccione... <option value="1">España <option value="2">Argentina <option value="3">Colombia <option value="4">Francia </select> <select name=provincia> <option value="-">- </select> </form> Hasta aqui hemos creado el primer SelectCODE var provincias_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Castilla y León","Castilla-La Mancha","...") var provincias_2=new Array("-","Salta","San Juan","San Luis","La Rioja","La Pampa","...") var provincias_3=new Array("-","Cali","Santamarta","Medellin","Cartagena","...") var provincias_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Gironde ","...") Con esto creamos los arrays del segundo selectCODE function cambia_provincia(){ var pais pais = document.f1.pais[document.f1.pais.selectedIndex].value if (pais != 0) { mis_provincias=eval("provincias_" + pais) num_provincias = mis_provincias.length document.f1.provincia.length = num_provincias for(i=0;i<num_provincias;i++){ document.f1.provincia.options.value=mis_provincias document.f1.provincia.options.text=mis_provincias } }else{ document.f1.provincia.length = 1 document.f1.provincia.options[0].value = "-" document.f1.provincia.options[0].text = "-" } document.f1.provincia.options[0].selected = true } Y con esto decimos que depende de lo que hayamos puesto en el primer select, tiene que aparecer en el segundo...Esto es un ejemplo "simple" de como hacerlo. Si te das cuenta, los arrays los he introducido manualmente. Lo que tienes que hacer es una consulta a tu BD CODE <?phpwhile($row = mysql_fetch_array($result)) { echo "<option value=".$row["valor"].">".$row["enunciado"]."</option>"; } ?> Despues si no me equivoco, solo nos queda pasar la consulta de php a JavaScriptPara esto hay que "introducir" JavaScript dentro de PHP.CODE <?php$javascript = "<script language=\"JavaScript\">\n";$javascript .= " var array_js = new Array();\n"; //aqui nos conectariamos a la base de datos,,, a tu gusto!!!!! Yo uso algo asi:include("conexion_bd.php");$link=Conexion(); $valores=mysql_query("select * from columna",$link) or die (mysql_error());$contador = 0;while ($elem = mysql_fetch_array($valores)) { $javascript .="columna[".$contador."] = ".$elem['columna2'].";\n"; $contador++; }$javascript .= "</script>\n"; echo $javascript;?> Aquí tienes varias ayudas... Ya me diras si te ayuda algo de esto...Un saludo Slimer
Cita de: "Slimer" Hola Gaviotica:Por lo que entiendo, tu quieres conectarte a una BD mysql para que en un Select te salga lo que contiene la BD.Soy de los que piensa que para aprender necesitas "pistas" u "orientaciones" y que no te lo tienen que dar hecho, por lo que te lanzo lo siguiente.(Ya estas conectada a tu BD mysql por lo que no te digo mas o menos como...)Dentro del Select, en vez de enumerar las opciones, prueba con algo como esto:Código: Text <select name="pais" id="selectPais"><option> </option> VACIO<? mysql_data_seek ($result,0); // Con esto nos ponemos cada vez que entremos en la primera posición de la BD while ($row = mysql_fetch_array($result)) { echo "<opcion value=".$row["columna1"].">".$row["valor1"]."</opcion>"; }?></select> De esta forma tienes resuelta la conexión en PHP a una BD.Aquí hay algunos ejemplos (algunos sin depurar) pero que te pueden dar ideas (todos estos estan en el lado de JScript)Código: Text <html><head><title>Consulta de BD con JavaScript y PHP</title><head><script language="JavaScript">function funciona() { numero = porcentajes.length; document.formulario.select1.length = numero; for (i=0; i<numero; i++){ document.formulario.select1.options[i].value = valor_por[i]; document.formulario.select1.options[i].text = porcentajes[i]; }}</script> <script language="JavaScript">function tessto() { var valoracion = parseInt(document.formulario.select1[document.formulario.select1.selectedIndex].value);var restado = (100 - valoracion); if ( valoracion != 100) { document.formulario.select2.length = numero; for (i=0; i<numero; i++){if (valor_por[i] <= restado){ document.formulario.select2.options[i].value = valor_por[i]; document.formulario.select2.options[i].text = porcentajes[i]; }}}} </script> </head><body onLoad="funciona()"><?php$javascript = "<script language=\"JavaScript\">\n"; //activamos Java dentro de PHP$javascript .= " var porcentajes = new Array();\n"; //Creamos el Array vacio$javascript .= " var valor_por = new Array();\n"; //Creamos otro Array vacioinclude("conect.php"); //Incluimos un fichero$link=Conectarse(); // Nos conectamos a la BD$porcentajes=mysql_query("select * from porcentaje",$link) or die (mysql_error()); // hacemos consulta y metemos valores en $porc $contador = 0;while ($elem = mysql_fetch_array($porcentajes)) { $javascript .="porcentajes[".$contador."] = ".$elem['porcentaje_n'].";\n"; // asignamos valores al array. Estructura Array[i] = valor $javascript .="valor_por[".$contador."] = ".$elem['porcentaje_v'].";\n"; $contador++; }$javascript .= "</script>\n"; //cerramos JavaScriptecho $javascript;?> <form name="formulario"> <select name="select1" onchange= "tessto()"> <!-- option value ="-">- !--> </select> <select name="select2"> </select> <select name="select3"> </select> <select name="select4"> </select> <select name="select5"> </select> <input type="text" name="texto"> </form></body></html> CitarTienes dos select (o tres o los que quieras), y quieres que depende de lo que elijas en la primera opcion (Pais en tu caso), en el segundo select ponga estado, o ciudad, (o lo que quieras,,, puedes encadenarlo a tu gusto...). Un ejemplo sería el siguiente, siendo el primer Select, para el Pais, y el segundo select para la ciudad.CODE <form name="f1"> <select name=pais onchange="cambia_provincia()"> <option value="0" selected>Seleccione... <option value="1">España <option value="2">Argentina <option value="3">Colombia <option value="4">Francia </select> <select name=provincia> <option value="-">- </select> </form> Hasta aqui hemos creado el primer SelectCODE var provincias_1=new Array("-","Andalucía","Asturias","Baleares","Canarias","Castilla y León","Castilla-La Mancha","...") var provincias_2=new Array("-","Salta","San Juan","San Luis","La Rioja","La Pampa","...") var provincias_3=new Array("-","Cali","Santamarta","Medellin","Cartagena","...") var provincias_4=new Array("-","Aisne","Creuse","Dordogne","Essonne","Gironde ","...") Con esto creamos los arrays del segundo selectCODE function cambia_provincia(){ var pais pais = document.f1.pais[document.f1.pais.selectedIndex].value if (pais != 0) { mis_provincias=eval("provincias_" + pais) num_provincias = mis_provincias.length document.f1.provincia.length = num_provincias for(i=0;i<num_provincias;i++){ document.f1.provincia.options.value=mis_provincias document.f1.provincia.options.text=mis_provincias } }else{ document.f1.provincia.length = 1 document.f1.provincia.options[0].value = "-" document.f1.provincia.options[0].text = "-" } document.f1.provincia.options[0].selected = true } Y con esto decimos que depende de lo que hayamos puesto en el primer select, tiene que aparecer en el segundo...Esto es un ejemplo "simple" de como hacerlo. Si te das cuenta, los arrays los he introducido manualmente. Lo que tienes que hacer es una consulta a tu BD CODE <?phpwhile($row = mysql_fetch_array($result)) { echo "<option value=".$row["valor"].">".$row["enunciado"]."</option>"; } ?> Despues si no me equivoco, solo nos queda pasar la consulta de php a JavaScriptPara esto hay que "introducir" JavaScript dentro de PHP.CODE <?php$javascript = "<script language=\"JavaScript\">\n";$javascript .= " var array_js = new Array();\n"; //aqui nos conectariamos a la base de datos,,, a tu gusto!!!!! Yo uso algo asi:include("conexion_bd.php");$link=Conexion(); $valores=mysql_query("select * from columna",$link) or die (mysql_error());$contador = 0;while ($elem = mysql_fetch_array($valores)) { $javascript .="columna[".$contador."] = ".$elem['columna2'].";\n"; $contador++; }$javascript .= "</script>\n"; echo $javascript;?> Aquí tienes varias ayudas... Ya me diras si te ayuda algo de esto...Un saludo Slimer Hola Muchas gracias por su ayuda. Estoy trabajando en eso pero todo esta saliendo bien.