Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/10/2008, 08:08
fran321
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Condicional PHP con JavaScript embebido

Tengo este código en PHP que está en un fichero a parte y lo llama el submit de un formulario para ejecutar un INSERT INTO en la base de datos, y funciona perfectamente:

Código PHP:
<?php
include('conexion/conexion.php');
include(
'conexion/funciones.php');

$link=Conectar();

$fecha=fecha_a_mysql($_GET['theDate2']);
$profesor=$_GET['form1_id_prof'];
$copias=$_GET['form1_copias'];
$uso=$_GET['form1_id_uso'];
$importe=$_GET['form1_importe'];
$observaciones=$_GET['form1_observaciones'];

mysql_query("INSERT INTO copias (fecha, id_prof, num_copias, id_uso, importe, observaciones) VALUES ('$fecha','$profesor','$copias','$uso','$importe','$observaciones')",$link);

header("Location: fotocopias.php");
?>
Ahora, para impedir que se grabe el registro si "$profesor == 0", es decir, si el usuario no ha seleccionado ningún elemento de un cuadro de lista (<SELECT> del formulario) quiero que salga una ventana de alerta de JavaScript y diga "No ha seleccionado ningún profesor. El registro no ha sido guardado.". He hecho este código:

Código PHP:
<?php
include('conexion/conexion.php');
include(
'conexion/funciones.php');

$link=Conectar();

$fecha=fecha_a_mysql($_GET['theDate2']);
$profesor=$_GET['form1_id_prof'];
$copias=$_GET['form1_copias'];
$uso=$_GET['form1_id_uso'];
$importe=$_GET['form1_importe'];
$observaciones=$_GET['form1_observaciones'];


if (
$profesor == 0) {
?>
<script type="text/javascript">
window.alert("No ha seleccionado ningún profesor. El registro no ha sido guardado.");
</script>
<?php
} else {
mysql_query("INSERT INTO copias (fecha, id_prof, num_copias, id_uso, importe, observaciones) VALUES ('$fecha','$profesor','$copias','$uso','$importe','$observaciones')",$link);

}
header("Location: fotocopias.php");
?>
Cuando sí que se ha seleccionado un profesor de la lista ("$profesor" distinto de 0), se ejecuta la consulta, graba el registro y vuelve a fotocopias.php mediante el "header". Pero cuando no se ha seleccionado profesor ($profesor == 0), entonces sale el alert de JavaScript correctamente, pero cuando aceptas, no vuelve a fotocopias.php. Se queda la página en blanco y tienes que darle a Ir a la página anterior del navegador para volver.

¿Alquien sabe cómo poder solucionar esto?. Gracias de antemano.