if (selecteditem == 'Otras') {del primer combo me sale un casillero donde meter un nuevo dato en caso de que no esté en la lista que presento.
newZona = "";
while (newZona == ""){
newZona=prompt ("Por favor indica el nombre de la zona.", "");
}
if (newZona != null) {
passText(newZona)
}
Hola JuliusRisi:Buenas muchas gracias por responder, mi pregunta es la siguiente: Este es el código de Pais y estados que tengo, lo obtuve de varias páginas. El da perfectamente, el problema es que yo quiero llamar a los paises y a los estados desde una base de datos (estoy trabajando con Mysql) y la verdad no se como hacerlo, todos los foros me han respondido con términos que no entiendo porque soy novata en esto.
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 :hola:
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 Select
CODE
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 select
CODE
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
<?php
while($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 JavaScript
Para 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:Hola Muchas gracias por su ayuda. Estoy trabajando en eso pero todo esta saliendo bien.
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 vacio include("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 JavaScript echo $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 Select
CODE
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 select
CODE
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
<?php
while($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 JavaScript
Para 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
Gracias por su ayuda anterior tengo una nueva pregunta:Cita de: "Slimer"Hola Gaviotica:Hola Muchas gracias por su ayuda. Estoy trabajando en eso pero todo esta saliendo bien.
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 vacio include("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 JavaScript echo $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 Select
CODE
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 select
CODE
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
<?php
while($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 JavaScript
Para 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