Foros del Web » Programando para Internet » Javascript »

Problemas con alert

Estas en el tema de Problemas con alert en el foro de Javascript en Foros del Web. Hola, cómo están? soy nueva programando en javascript, lo estoy utilizando conjuntamente con PHP. El problema que tengo es que creé una function para un ...
  #1 (permalink)  
Antiguo 17/10/2012, 10:17
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Problemas con alert

Hola, cómo están? soy nueva programando en javascript, lo estoy utilizando conjuntamente con PHP.
El problema que tengo es que creé una function para un aler que tiene que aparecer cuando se cumpla cierta condición y resulta que no sé cuál es el motivo por el cual el alert aparece desde el primer submit del formulario.
Espero puedan ayudarme a ver cual es mi error, o qué es lo que tengo que tener en cuenta a la hora de utilizar este tipo de funciones.
Dejo mi código de la función:

Código:
<script type="text/javascript">
function Mensaje(){
  mensaje="Error de noches";
alert(mensaje);
}

Mensaje();

</script>
De la condición:

Código PHP:
if($intervalo!== $NOCHESSUGERIDAS )
{
   
Mensaje();
   

Muchas Gracias.
  #2 (permalink)  
Antiguo 17/10/2012, 11:55
Avatar de Jodorem  
Fecha de Ingreso: abril-2012
Mensajes: 18
Antigüedad: 12 años
Puntos: 1
Respuesta: Problemas con alert

anidivi,

Justamente despues de que creas la funcion Mensaje(), la estas ejecutando y es por eso que se esta ejecutando sin condicion alguna. Borra esa línea y se solucionará ese inconveniente.

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function Mensaje(){
  3.   mensaje="Error de noches";
  4. alert(mensaje);
  5. }
  6.  
  7. </script>
  #3 (permalink)  
Antiguo 17/10/2012, 13:01
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con alert

Gracias por tu respuesta Jodorem, pero si le saco esa línea de código me sale el siguiente error
Call to undefined function Mensaje()

si me podrías ayudar de nuevo, te agradezco mucho!
  #4 (permalink)  
Antiguo 17/10/2012, 13:30
Avatar de Jodorem  
Fecha de Ingreso: abril-2012
Mensajes: 18
Antigüedad: 12 años
Puntos: 1
Respuesta: Problemas con alert

Ehm.. si claro... disculpa por haber respondido a medias.

Seguramente ese error te sale es por PHP.

Miremos el código

Código PHP:
Ver original
  1. if($intervalo!== $NOCHESSUGERIDAS )
  2. {
  3.    Mensaje();
  4.    
  5. }

Fijate que estas usando código PHP y dentro estas llamando a una funcion Mensaje() que no existe en PHP.

Si quieres mostrar el mensaje de error antes de que se envien los datos al servidor (en este caso que reciba los datos el arhivo PHP) deberás hacer validaciones en Javascript.

Por ejemplo...

Suponiendo que no deseas que el usuario le de "submit" a un formulario con algún campo vacio. Deberás hacer una condición en Javascript que verifique si alguno de los campos está vacío y arroja el error que deseas y obviamente, no carga el formulario.

Si quieres pon el código completo para poder ayudarte mejor.
  #5 (permalink)  
Antiguo 18/10/2012, 06:59
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con alert

Jodorem, muchas gracias de nuevo y disculpa la molestia.
Te comento mejor, tengo un form en el cual el usuario va a hacer 3 selecciones y ahí es cuando yo hago la condición que me compara dos de las cosas que el usuario selecciono. si no coincide, tiene que aparecer el error.

Te muestro todo el form

<?php
$TITULOSECCION="Reservas de destinos";
$IDDESTINOS=$_REQUEST['IDDESTINOS'];
$fechainicio=$_REQUEST['fechainicio'];
$fechafin=$_REQUEST['fechafin'];
$ADULTOS=$_REQUEST['select2'];
$menor=$_REQUEST['select3'];
$menores=$_REQUEST['select4'];
$check=$_REQUEST['IDDESTINOSSUGERIDOS'];
if ($fechainicio & $fechafin){
//defino fecha 1
$fecha=explode("/",$fechafin);

$ano1 = $fecha[2];
$mes1 = $fecha[1];
$dia1 = $fecha[0];
$fecha=explode("/",$fechainicio);
//defino fecha 2
$ano2 = $fecha[2];
$mes2= $fecha[1];
$dia2 = $fecha[0];

//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(0,0,0,$mes2,$dia2,$ano2);

//resto a una fecha la otra
$segundos_diferencia = $timestamp1 - $timestamp2;

$intervalo = round($segundos_diferencia / (60 * 60 * 24));

}
$CONTENIDO.="Datos de Viaje: <p>";

$CONTENIDO.="<TABLE border='0' cellpadding='0' cellspacing='0'>
<TD>
<form name=destinos method=post>";

$sql= "SELECT * FROM destinos order by NOMBRE";
$resultado= mysql_query($sql, $conn1);


$CONTENIDO.="Destino";
$CONTENIDO.="<select name='IDDESTINOS' onchange='destinos.submit();'>
<option></option>";

while($row = mysql_fetch_array($resultado))
{
$CONTENIDO.="<option value='".$row['IDDESTINOS']."' ".($IDDESTINOS==$row['IDDESTINOS']?" selected ":"").">".$row['NOMBRE']."</option>";

}
$CONTENIDO.="</select></TD><TD>";





$sql3= "SELECT destinos.NOMBRE, destinossugeridos.IDDESTINOSSUGERIDOS, destinossugeridos.NOCHESSUGERIDAS
FROM destinos join destinossugeridos
ON (destinos.IDDESTINOS=destinossugeridos.IDDESTINOSS UGERIDOS) where destinossugeridos.IDDESTINOS='$IDDESTINOS'";

$resultado3= mysql_query($sql3, $conn1);

while($row = mysql_fetch_array($resultado3))
{
$CONTENIDO.="</td><td> Noches <input type=text name=noches value='".$row["NOCHESSUGERIDAS"]."' ></td><td>";
}


$CONTENIDO.="Total Días: $intervalo </td>";

if($intervalo!== $NOCHESSUGERIDAS )
{
Mensaje();

}

$CONTENIDO.="<TR><td>Fecha de Inicio: <input id='fechainicio' name='fechainicio' type='text' class='calendario' OnChange=' if (this.value!=\"\" && destinos.fechafin.value!=\"\")destinos.submit()' value='$fechainicio'>
</TD></TR>";


$CONTENIDO.="<TR><TD>Fecha Fin: <input id='fechafin' name='fechafin' type='text' class='calendario' OnChange='if (this.value!=\"\" && destinos.fechainicio.value!=\"\" )destinos.submit() ;' value='$fechafin'></TD></TR>";




$CONTENIDO.="<TR><TD>Adultos ";
$CONTENIDO.="<select name='select2' onchange='document.destinos.enviar.disabled=!docum ent.destinos.enviar.disabled'>";
$CONTENIDO.="<option selected></option>
<option value='1' ".($ADULTOS==1?" SELECTED ":"").">1 </option>
<option value='2'".($ADULTOS==2?" SELECTED ":"")."> 2 </option>
<option value='3'".($ADULTOS==3?" SELECTED ":"")."> 3 </option>
<option value='4'".($ADULTOS==4?" SELECTED ":"")."> 4 </option>
<option value='5'".($ADULTOS==5?" SELECTED ":"")."> 5 </option>
<option value='6'".($ADULTOS==6?" SELECTED ":"")."> 6 </option>
<option value='7'".($ADULTOS==7?" SELECTED ":"")."> 7 </option>
<option value='8'".($ADULTOS==8?" SELECTED ":"")."> 8 </option>
<option value='9'".($ADULTOS==9?" SELECTED ":"")."> 9 </option>
<option value='10'".($ADULTOS==10?" SELECTED ":"")."> 10 </option>";
$CONTENIDO.="</select></TD>";


$CONTENIDO.="<TD>Menor mayor a 2 años ";
$CONTENIDO.="<select name='select3'>";
$CONTENIDO.="<option selected></option>
<option value='1' ".($menor==1?" SELECTED ":"").">1 </option>
<option value='2'".($menor==2?" SELECTED ":"")."> 2 </option>
<option value='3'".($menor==3?" SELECTED ":"")."> 3 </option>
<option value='4'".($menor==4?" SELECTED ":"")."> 4 </option>
<option value='5'".($menor==5?" SELECTED ":"")."> 5 </option>
<option value='6'".($menor==6?" SELECTED ":"")."> 6 </option>
<option value='7'".($menor==7?" SELECTED ":"")."> 7 </option>
<option value='8'".($menor==8?" SELECTED ":"")."> 8 </option>
<option value='9'".($menor==9?" SELECTED ":"")."> 9 </option>
<option value='10'".($menor==10?" SELECTED ":"")."> 10 </option>";
$CONTENIDO.="</select></TD>";


$CONTENIDO.= "<TD>Menor de menos de 2 años ";
$CONTENIDO.="<select name='select4'>";
$CONTENIDO.="<option selected></option>
<option value='1' ".($menores==1?" SELECTED ":"").">1 </option>
<option value='2'".($menores==2?" SELECTED ":"")."> 2 </option>
<option value='3'".($menores==3?" SELECTED ":"")."> 3 </option>
<option value='4'".($menores==4?" SELECTED ":"")."> 4 </option>
<option value='5'".($menores==5?" SELECTED ":"")."> 5 </option>
<option value='6'".($menores==6?" SELECTED ":"")."> 6 </option>
<option value='7'".($menores==7?" SELECTED ":"")."> 7 </option>
<option value='8'".($menores==8?" SELECTED ":"")."> 8 </option>
<option value='9'".($menores==9?" SELECTED ":"")."> 9 </option>
<option value='10'".($menores==10?" SELECTED ":"")."> 10 </option>";
$CONTENIDO.="</select></TD></TR>";

$CONTENIDO.= "<TR><TD><input type=hidden name=IDDESTINOSSUGERIDOS value='".$row["IDDESTINOSSUGERIDOS"]."'>";

$sql1="SELECT destinos.NOMBRE, destinossugeridos.IDDESTINOSSUGERIDOS
FROM destinos join destinossugeridos
ON (destinos.IDDESTINOS=destinossugeridos.IDDESTINOSS UGERIDOS) where destinossugeridos.IDDESTINOS='$IDDESTINOS'";
$resultado1= mysql_query($sql1, $conn1);


$DESTINOSSUGERIDOS=1;
while($row = mysql_fetch_array($resultado1))
{
if($DESTINOSSUGERIDOS==1)$CONTENIDO.="¿Desea conocer otros Destinos? <p>";
$CONTENIDO.="<input type='checkbox' name='IDDESTINOSSUGERIDOS[]' value=".$row['IDDESTINOSSUGERIDOS']."".($check==true?" checked ":"").">".$row['NOMBRE']."";

$DESTINOSSUGERIDOS=0;
}

$CONTENIDO.="<p><input type='submit' name='enviar' value='Enviar' disabled>";

if (isset($_POST['IDDESTINOSSUGERIDOS']) && is_array($_POST["IDDESTINOSSUGERIDOS"]) && count($_POST['IDDESTINOSSUGERIDOS']) > 0)
{
foreach ($_POST['IDDESTINOSSUGERIDOS'] as $IDDESTINOSSUGERIDOS)
{
$sql2="SELECT destinos.NOMBRE, destinossugeridos.IDDESTINOSSUGERIDOS, destinossugeridos.NOCHESSUGERIDAS
FROM destinos
join destinossugeridos
ON (destinos.IDDESTINOS=destinossugeridos.IDDESTINOSS UGERIDOS)WHERE destinossugeridos.IDDESTINOS='$IDDESTINOSSUGERIDOS '";
$resultado2= mysql_query($sql2, $conn1);
while($row = mysql_fetch_array($resultado2))
$NOCHESSUGERIDAS=$NOCHESSUGERIDAS+$row['NOCHESSUGERIDAS'];
}

}


if($NOCHESSUGERIDAS) $CONTENIDO.="Noches Sugeridas ".$NOCHESSUGERIDAS."";




$CONTENIDO.="</TD></form></TABLE>";
  #6 (permalink)  
Antiguo 18/10/2012, 22:49
Avatar de Jodorem  
Fecha de Ingreso: abril-2012
Mensajes: 18
Antigüedad: 12 años
Puntos: 1
Respuesta: Problemas con alert

Hola anidivi, disculpa mi ausencia.

Quisiera serte sincero y no es mas que una recomendación... Tu código es un DESASTRE... trata de ordenarlo.... Tip: Cuando vayas a escribir código HTML hazlo fuera del PHP.

Vamos a una solución rápida a tu solicitud... porque en realidad deberias comenzar por ordenar tu código.

Para que se ejecute tu funcion Mensaje() debes hacer lo siguiente:

Código PHP:
Ver original
  1. if($intervalo!== $NOCHESSUGERIDAS )
  2. {?>
  3.     <script type="text/javascript">
  4.         Mensaje();
  5.     </script>
  6. <?}

Fijate que despues del "{" del if, cierro la escritura para codigo php con "?>". Ahora se procede a escribir como si fuese HTML y escribimos el tag para iniciar codigo Javascript. Ahora si podrá ejecutar la funcion Mensaje() porque la función pertenece a un código Javascript y no PHP. Luego cerramos el tag de javascript, y volvemos a abrir el tag para PHP "<?" y procedemos a cerrar el if con su respectivo "}".

Creo que no entendi muy bien que error querias controlar, pero con lo que te acabo de escribir se podra ejecutar la funcion Mensaje() al cumplirse el if que escribes.

Por ultimo, en el foro, tratemos ó mejor dicho se debe de utilizar la herramienta para ver mejor el código. Asi no molestamos a los lectores, jeje.
  #7 (permalink)  
Antiguo 19/10/2012, 07:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con alert

Muchas Gracias Jodorem!.. te cuento que escribo el html dentro del php porque es una aplicación que va dentro de una web, si lo hago de otra manera no va a funcionar.

Gracias por todo.

Etiquetas: formulario, funcion, php, alerta
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 05:22.