Foros del Web » Programando para Internet » PHP »

Restricciones en formulario utilizando PHP

Estas en el tema de Restricciones en formulario utilizando PHP en el foro de PHP en Foros del Web. Saludos, Explico, estoy haciendo una página para que estudiantes se matriculen en distintas secciones de laboratorios para luego yo obtener toda esta informacion en mi ...
  #1 (permalink)  
Antiguo 01/08/2012, 09:41
 
Fecha de Ingreso: julio-2012
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Restricciones en formulario utilizando PHP

Saludos,

Explico, estoy haciendo una página para que estudiantes se matriculen en distintas secciones de laboratorios para luego yo obtener toda esta informacion en mi base de datos (MySQL). Obviamente las secciones de laboratorios tienen un límite de capacidad. Ahora, lo que quiero hacer es que cuando intenten matricularse en esa sección les aparezca un mensaje diciendo "Lo sentimos, la sección escogida no está disponible." Ahora no se si esto se tiene (o se puede) hacer directamente en la base de datos o se tiene que hacer en el código php.

Espero me puedan dar alguna sugerencia. Gracias anticipadas

Adjunto el código que he hecho para cada sección.

Código PHP:

            
<form action="insertarlab-401.php" name="form1" method="post" >
              <
h3>Informaci&oacute;n Personal </h3>
              <
p>&nbsp;</p>
              <
table width="633" border="0">
                <
tr>
                  <
td width="128">Nombre</td>
                  <
td width="404"><span id="sprytextfield1">
                    <
label>
                      <
input name="nombre" type="text" id="nombre" size="50" maxlength="50" onkeyup="this.value=this.value.toUpperCase()"/>
                  </
label>
                  <
span class="textfieldRequiredMsg">A value is required.</span></span></td>
                </
tr>
                <
tr>
                  <
td>Apellidos</td>
                  <
td><span id="sprytextfield2">
                    <
label>
                      <
input name="apellidos" type="text" id="apellidos" size="50" maxlength="50" onkeyup="this.value=this.value.toUpperCase()"/>
                  </
label>
                  <
span class="textfieldRequiredMsg">A value is required.</span></span></td>
                </
tr>
                <
tr>
                  <
td>Correo electr&oacute;nico</td>
                  <
td><span id="sprytextfield3">
                  <
label>
                    <
input name="email" type="text" id="email" size="50" maxlength="50" onkeyup="this.value=this.value.toLowerCase()"/>
                  </
label>
                  <
span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></td>
                </
tr>
                <
tr>
                  <
td>N&uacute;mero de estudiante</td>
                  <
td><span id="sprytextfield4">
                  <
label>
                    <
input name="numest" type="text" id="numest" size="50" maxlength="11" />
                    
xxx-xx-xxxx
                  
</label>
                  <
span class="textfieldRequiredMsg">A value is required.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></td>
                </
tr>
              </
table>
              <
p>Informaci&oacute;n sobre el curso matriculado</p>
              <
table width="273" border="0">
                <
tr>
                  <
td width="85">Curso</td>
                  <
td width="178"><label>
                    <
select name="curso" id="curso">
                      <
option value="mecu3031">MECU 3031</option>
                    </
select>
                    </
label></td>
                </
tr>
                <
tr>
                  <
td>Secci&oacute;n</td>
                  <
td><select name="seccion" id="seccion">
                    <
option value="001">001 (LW 8:30-9:50)</option>
                    <
option value="002">002 (LW 1:00-2:20)</option>
                    <
option value="003">003 (LW 5:30-6:50)</option>
                    <
option value="004">004 (MJ 8:30-9:50)</option>
                    <
option value="005">005 (MJ 10:00-11:20)</option>
                    <
option value="006">006 (MJ 11:30-12:50)</option>
                    <
option value="007">007 (V 7:00-9:50)</option>
                  </
select></td>
                </
tr>
                <
tr>
                  <
td>Profesor</td>
                  <
td><label>
                    <
select name="profesor" id="profesor">
                      <
option value="cucurella">ProfBlanca Cucurella</option>
                      <
option value="delgado">ProfMoises Delgado</option>
                      <
option value="melendez">ProfWalter Melendez</option>
                      <
option value="torres-hector">ProfH&eacute;ctor DTorres</option>
                      <
option value="villavicencio">ProfJohn Villavicencio</option>
                    </
select>
                    </
label></td>
                </
tr>
              </
table>
              <
p>Selecci&oacute;n de la secci&oacute;n de laboratorio al cual asistir&aacute;</p>
              <
table width="350" border="0">
                <
tr>
                  <
td width="180">Secci&oacute;n de laboratorio</td>
                  <
td width="160"><select name="laboratorio" id="laboratorio">
                    <
option value="401">401 (L 10:00-11:00)</option>
</
select></td>
                </
tr>
              </
table>
              <
p>Entiendo y estoy de acuerdo con las reglas y estipulaciones de el laboratorio que estoy matriculandoAdem&aacute;scertifico que solamente me he matriculado en una secci&oacute;nO cualquier cosa que se quiera poner aqu&iacute;</p>
              <
p><span id="sprycheckbox1">
                <
label>
                  <
input name="acuerdo" type="checkbox" id="acuerdo" value="acuerdo" />
                  
Certifico que he leido y estoy de acuerdo con lo antes mencionado.</label>
              <
span class="checkboxRequiredMsg">Please make a selection.</span></span></p>
              <
p>&nbsp;</p>
              <
p>
                <
input type="submit" name="button" id="button" value="Someter" />
                <
input type="reset" name="button2" id="button2" value="Reset" />
              </
p>
            </
form
  #2 (permalink)  
Antiguo 01/08/2012, 10:10
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Restricciones en formulario utilizando PHP

Haber puedes hacerlo de dos formas o en la bd o por php

mysql

creas un campo en el que indiques si esta disponible o no

campo disponibilidad 2 valores si y no por ejemplo

entonces el usuario selecciona una seccion , mandamos los datos y debemos seleccionar a partir de ahora esa disponibilidad de la seccion escogida y verificamos ese campo si es si contuamos , si es no paramos script esto hazlo mediante if

if($seccion_escogida == 'no'){

exit('la seccion no esta disponible');
}

PHP sin mysql

practicamente igual pero en vez de consultar la disponibilidad de la bd lo hacemos a traves de un switch en ese switch pasamos la seccion y si es una de las no disponibles ejecutamos

switch($seccion_escogida){

case 'cultura':
exit('esta seccion no esta disponible');
break;

// mas secciones no disponibles

}

ahora si lo quieres hacer sin aztualizar prueba con ajax
  #3 (permalink)  
Antiguo 01/08/2012, 10:22
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Restricciones en formulario utilizando PHP

o.O no debes hacer todo ese código, supongo que tienes un registro por cada usuario matriculado, si es así solo cuenta cuantas matriculas hay en la tabla y ve si aun queda espacio o no, ejemplo

Tabla:
id, idUsuario, laboratorio

1, 1, laboratorio1
2, 2, laboratorio1
3, 3, laboratorio2
4, 4, laboratorio1


Ahora solo cuenta cuantas matriculas tiene cada laboratorio:

Código PHP:
Ver original
  1. $sql = 'SELECT COUNT(*) FROM tabla WHERE laboratorio = "laboratorio1"';
  2. $query = mysql_query($sql,$conexion) or die(mysql_error());
  3.  
  4. $limite = 30; //numero máximo de matriculas en un laboratorio
  5.  
  6. if (mysql_result($query,0) < $limite) {
  7.      echo 'hay espacio disponible';
  8. }else {
  9.      echo 'Laboratorio lleno!';
  10. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: mysql, restricciones, formulario
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:30.