Foros del Web » Programando para Internet » PHP »

Aplicación con formulario en PHP

Estas en el tema de Aplicación con formulario en PHP en el foro de PHP en Foros del Web. Para empezar les envio el código que hice en PHP Código PHP:       <form id="form1" name="form1" method="post" action="afiliacion3.php">         <p>            <?      //Conexion con la base      mysql_connect ( "localhost" , "root" , ...
  #1 (permalink)  
Antiguo 08/06/2007, 07:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años, 1 mes
Puntos: 0
Aplicación con formulario en PHP

Para empezar les envio el código que hice en PHP
Código PHP:
      <form id="form1" name="form1" method="post" action="afiliacion3.php">
        <p>
          <?
    
//Conexion con la base
    
mysql_connect("localhost","root","s0ld13r2"); 
 
    
//selección de la base de datos con la que vamos a trabajar 
    
mysql_select_db("dicosa_equiphone"); 
    
?>
    <select name="zona" id="zona">
   <?
   
//Ejecutamos la sentencia SQL
   
$result1=mysql_query("SELECT * FROM `planesdid` ORDER BY `pais` ASC");
   
?>
            <option value="">Seleccione el pa&iacute;s...</option>
   <?
   
//Mostramos los registros
   
while ($row1=mysql_fetch_array($result1))
   {
   echo 
'<option value="'.$row1["id"].'">'.$row1["pais"].'</option>\n';
   }
   
mysql_free_result($result1);
   
?>
          </select>
        </p>
        <p>
          <select name="region" id="region">
            <?
   
//Ejecutamos la sentencia SQL
   
$result2=mysql_query("SELECT * FROM `didregion` ORDER BY `region` ASC");
   
?>
   <option value="">Seleccione regi&oacute;n...</option>
   <?
   
//Mostramos los registros
   
while ($row2=mysql_fetch_array($result2))
   {
   echo 
'<option value="'.$row2["id"].'">'.$row2["region"].'</option>';
   }
   
mysql_free_result($result2);
   
?>
          </select>
        </p>
        <p>
          <select name="ciudad" id="ciudad">
            <?
   
//Ejecutamos la sentencia SQL
   
$result3=mysql_query("SELECT * FROM `didciudades` ORDER BY `pais_ciudad` ASC");
   
?>
            <option value="">Seleccione ciudad...</option>
   <?
   
//Mostramos los registros
   
while ($row3=mysql_fetch_array($result3))
   {
   echo 
'<option value="'.$row3["id"].'">'.$row3["pais_ciudad"].'</option>';
   }
   
mysql_free_result($result3);
   
?>
          </select>
        </p>
        <p><span class="Estilo38">Precio del servicio (mensual): </span>
          <input name="precio" type="text" id="precio" />
        </p>
        <p class="Estilo38"><span class="Estilo34">Cargo fijo por instalaci&oacute;n (Un s&oacute;lo pago):</span> 
          <input name="costo" type="text" id="costo" />
        </p>
Ahora la explicación de lo que trato de hacer: quisiera que una de las listas, al seleccionar una opción, vaya a la base de datos, seleccione una region y genere otra lista con las opciones que coincidan con el criterio de búsqueda.

Por ejemplo, selecciono la opción "United States" y me aparece dentro de la mísma página otra lista con las opciones que coincida con ese país. Y después quisiera hacer lo mismo con el estado para sacar las ciudades.

Pero no solo busco eso, quisiera que en la búsqueda, después de poner las tres opciones seleccionadas, poner el precio y costo en sus respectivas cajas de texto. Esto se puede encontrar en la tabla "planesdid" de mi base de datos "dicosa_equiphone".

Bueno espero sepan ayudarme con este problemilla y tenga una pronta respuesta

Muchas gracias

The Neurochild

Última edición por The Neurochild; 14/06/2007 a las 13:02
  #2 (permalink)  
Antiguo 08/06/2007, 08:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Aplicación con formulario en PHP (Urgente)

Busca en Google o en el foro en las FAQs, Selects Dependientes o Listas Dependientes, este tema ya se ha tratado mucho.

Saludos.
  #3 (permalink)  
Antiguo 08/06/2007, 10:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Aplicación con formulario en PHP (Urgente)

encontré el siguiente código que me pareció útil usando javascript:
Código HTML:
<html>
<head>
 <title>Selects dependientes</title>
</head>
<body>
<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>
<script>
//defino una serie de varibles Array para cada país
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 ","...")
//función que cambia las provincias del select de provincias en función del país que se haya escogido en el select de país.
function cambia_provincia(){
 //tomo el valor del select del pais elegido
 var pais
 pais = document.f1.pais[document.f1.pais.selectedIndex].value
 //miro a ver si el pais está definido
 if (pais != 0) {
  //si estaba definido, entonces coloco las opciones de la provincia correspondiente.
  //selecciono el array de provincia adecuado
  mis_provincias=eval("provincias_" + pais)
  //calculo el numero de provincias
  num_provincias = mis_provincias.length
  //marco el número de provincias en el select
  document.f1.provincia.length = num_provincias
  //para cada provincia del array, la introduzco en el select
  for(i=0;i<num_provincias;i++){
     document.f1.provincia.options[i].value=mis_provincias[i]
     document.f1.provincia.options[i].text=mis_provincias[i]
  } 
 }else{
  //si no había provincia seleccionada, elimino las provincias del select
  document.f1.provincia.length = 1
  //coloco un guión en la única opción que he dejado
  document.f1.provincia.options[0].value = "-"
     document.f1.provincia.options[0].text = "-"
 }
 //marco como seleccionada la opción primera de provincia
 document.f1.provincia.options[0].selected = true
}
</script>
</body>
</html>
 
Pero hay un detalle, quisiera poner otro select asociado a provincias (ciudades).

Se que esto es javascript, pero necesito saberlo para despues integrarlo con php

Saludos
  #4 (permalink)  
Antiguo 14/06/2007, 13:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años, 1 mes
Puntos: 0
Selects dependientes de 3 niveles PHP+MySQL+Javascript

He adoptado una solución muy interesante, combinando PHP, Javascript y base de datos MySQL. Pero el código tiene un problema.

A continuación se los muestro:
Código PHP:
<?
mysql_connect
("localhost","root","s0ld13r2"); 
mysql_select_db("dicosa_equiphone"); 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Selects dependientes</title>
<script language="JavaScript">
<!--
function cambiar()
{
var index=document.forms.formulario.pais.selectedIndex;
formulario.region.length=0;
if(index==0){
vacio();
cambiar2();
}
<?
$result
=mysql_query("SELECT * FROM `planesdid` ORDER BY `pais` ASC");
$i 1;
while (
$row=mysql_fetch_array($result))
{
echo 
"if(index==".$i.") pais".$i."();\n";
$i++;
}
mysql_free_result($result);
?>
}
function vacio(){
opcion0=new Option('Seleccione región...','0','defauldSelected');
document.forms.formulario.region.options[0]=opcion0;
}
<?
$result
=mysql_query("SELECT * FROM `planesdid` ORDER BY `pais` ASC");
$i 1;
while (
$row=mysql_fetch_array($result))
{
echo 
"function pais".$i."(){\n";
echo 
"opcion0=new Option('Seleccione región...','0','defauldSelected');\n";
echo 
"document.forms.formulario.region.options[0]=opcion0;\n";
$result1=mysql_query("SELECT * FROM `didregion` WHERE `id_pais` = ".$row["id"]." ORDER BY `region` ASC");
$i1 1;
while (
$row1=mysql_fetch_array($result1))
{
echo 
"opcion".$i1."=new Option('".$row1["region"]."','".$row1["id"]."');\n";
echo 
"document.forms.formulario.region.options[".$i1."]=opcion".$i1.";\n";
$i1++;
}
mysql_free_result($result1);
$i1 0;
echo 
"}\n";
$i++;
}
mysql_free_result($result);
?>
function cambiar2()
{
var index=document.forms.formulario.region.selectedIndex;
formulario.ciudad.length=0;
if(index==0) vacio2();
<?
$result
=mysql_query("SELECT * FROM `didregion` ORDER BY `region` ASC");
$i 1;
while (
$row=mysql_fetch_array($result))
{
echo 
"if(index==".$i.") region".$i."();\n";
$i++;
}
mysql_free_result($result);
?>
}
function vacio2(){
opcion0=new Option('Seleccione ciudad...','0','defauldSelected');
document.forms.formulario.ciudad.options[0]=opcion0;
}
<?
$result
=mysql_query("SELECT * FROM `didregion` ORDER BY `region` ASC");
$i 1;
while (
$row=mysql_fetch_array($result))
{
echo 
"function region".$i."(){\n";
echo 
"opcion0=new Option('Seleccione ciudad...','0','defauldSelected');\n";
echo 
"document.forms.formulario.ciudad.options[0]=opcion0;\n";
$result1=mysql_query("SELECT * FROM `didciudades` WHERE `id_region` = ".$row["id"]." ORDER BY `pais_ciudad` ASC");
$i1 1;
while (
$row1=mysql_fetch_array($result1))
{
echo 
"opcion".$i1."=new Option('".$row1["pais_ciudad"]."','".$row1["id"]."');\n";
echo 
"document.forms.formulario.ciudad.options[".$i1."]=opcion".$i1.";\n";
$i1++;
}
mysql_free_result($result1);
$i1 0;
echo 
"}\n";
$i++;
}
mysql_free_result($result);
?>
//-->
</script>
</head>
<body>
<form name="formulario" method="post" action="">
<div align="center">País 
<select name="pais" OnChange="cambiar()">
<option value="0" selected>Seleccione país...</option>
<?
$result
=mysql_query("SELECT * FROM `planesdid` ORDER BY `pais` ASC");
while (
$row=mysql_fetch_array($result))
{
echo 
'<option value="'.$row["id"].'">'.$row["pais"].'</option>';
}
mysql_free_result($result);
?>
</select>
Región 
<select name="region" OnChange="cambiar2()">
<option value="0" selected>Seleccione región...</option>
</select>
Ciudad
<select name="ciudad">
<option value="0" selected>Seleccione ciudad...</option>
</select>
</div>
</form>
</body>
</html>
la situación es la siguiente: poner a funcionar de buena forma el 3er. select (ciudades).

Por cada país hay varias regiones. Por cada región hay varias ciudades. No se si el query para las regiones es el correcto. Necesito ayuda con esto, por favor

Saludos
  #5 (permalink)  
Antiguo 15/06/2007, 09:03
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: Aplicación con formulario en PHP

Puedes ver los 3 selects dependientes con inteligencia hacia atrás que hice. Además alguien me preguntó para adaptarlo a un documento que ya tenía los selects creados (yo los creo mediante javascript). Este es el hilo.

Para adaptarlo a php+mysql sólo tienes que rellenar el array con los valores que te brinda la base de datos, sin embargo para construir dinámicamente el array (AJAX) este script no sería válido, porque no tendría sentido la inteligencia de escoger una ciudad y que queden seleccionados su provincia y su pais...



Un saludo.
__________________
- 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 15:08.