Foros del Web » Programando para Internet » PHP »

Aprendiendo PHP

Estas en el tema de Aprendiendo PHP en el foro de PHP en Foros del Web. A ver, estoy aprendiendo php y con lo que se tengo un problemilla, tengo una pagina con una base de datos, entonces la cosa es ...
  #1 (permalink)  
Antiguo 08/03/2009, 14:01
 
Fecha de Ingreso: marzo-2009
Mensajes: 52
Antigüedad: 15 años, 1 mes
Puntos: 0
Aprendiendo PHP

A ver, estoy aprendiendo php y con lo que se tengo un problemilla, tengo una pagina con una base de datos, entonces la cosa es que hay 2 select, 1 de ellos muestra una lista de letras, y segun la letra que escoja, el select de la derecha muestra un conjunto de letras y esto esta hecho asi:

<?php
include('conexion.inc.php');
?>
<?php
$grado=($_POST['grado1']);
?>
<form action="personajes.php" method="POST">
<span>Grado:</span>
<select onchange="submit()" name="grado1">
<?php
$link = Conectarse();
$sql = 'select grado'.' from grado';
$result = mysql_query($sql) or die("La siguiente consulta contiene algún error:<br>SQL: <b>$sql</b>");
while ($row = mysql_fetch_array($result)){
if($row['grado']===($grado)){
echo '<option selected=\'selected\'>'.$row['grado'].'</option>';
}else{
echo '<option>'.$row['grado'].'</option>';
}
}
?>
<?php
if($grado===(null)){$link = Conectarse();gradoA();}
if($grado===('S')){$link = Conectarse();gradoS();}
if($grado===('A')){$link = Conectarse();gradoA();}
if($grado===('B')){$link = Conectarse();gradoB();}
if($grado===('C')){$link = Conectarse();gradoC();}
if($grado===('D')){$link = Conectarse();gradoD();}
if($grado===('NG')){$link = Conectarse();gradoNG();}
?>

Y entonces eso funciona bien pero al hacer el submit se refresca TOOOODA la pagina y los demas selects de esta se reinician, y la idea era que todos se mantuvieran como estan par que luego al darle a enviar envie todo slos datos introduciedos en la base de datos. No se si se me entiende o tendre que explicarme mejor xD
  #2 (permalink)  
Antiguo 09/03/2009, 11:04
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aprendiendo PHP

Código php:
Ver original
  1. <?php
  2. include('conexion.inc.php');
  3. // Crea un valor por default para la variable
  4. if(isset($_POST['grado1']))
  5.     $grado=$_POST['grado1'];
  6. else
  7.     // Aqui pon el valor que corresponda
  8.     $grado = '';
  9. ?>
  10. <form action="personajes.php" method="POST">
  11. <span>Grado:</span>
  12. <select onchange="submit()" name="grado1">
  13. <?php
  14. $link = Conectarse();
  15. $sql = 'select grado from grado';
  16. $result = mysql_query($sql) or die("La siguiente consulta contiene algún error:<br>SQL: <b>$sql</b>");
  17. while ($row = mysql_fetch_row($result)){
  18.     // Cada option debe tener un valor o no funcionara correctamente
  19.     if($row[0]==$grado)
  20.        echo "<option value=\"{$row[0]}\" selected=\"selected\">{$row[0]}</option>";
  21.     else
  22.        echo "<option value=\"{$row[0]}\">{$row[0]}</option>";
  23. }
  24. // Conecta solamente una vez, si es dentro del mismo script ya no necesitas hacerlo
  25. // Si es en otro script agregas la siguiente linea:
  26. $link = Conectarse();
  27.  
  28. // Optimiza las comparaciones, tal vez sea mas legible y optimo un switch
  29. if($grado == '' || $grado == 'A')
  30.     gradoA();
  31. else if($grado == 'B')
  32.     gradoB();
  33. else if($grado == 'C')
  34.     gradoC();
  35. else if($grado == 'D')
  36.     gradoD();
  37. else if($grado == 'S')
  38.     gradoS();
  39. else if($grado == 'NG')
  40.     gradoNG();
  41. ?>
__________________
- León, Guanajuato
- GV-Foto
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 04:59.