Foros del Web » Programando para Internet » Javascript »

JavaScript y PHP

Estas en el tema de JavaScript y PHP en el foro de Javascript en Foros del Web. Hola, Estoy haciendo un formulario en php. Para dicho formulario tengo una funcion en javascript que va comprobando que los datos en los campos son ...
  #1 (permalink)  
Antiguo 26/05/2010, 12:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
JavaScript y PHP

Hola,

Estoy haciendo un formulario en php.

Para dicho formulario tengo una funcion en javascript que va comprobando que los datos en los campos son correctos.

Mi problema es, que al hacer clic en "Enviar" comprueba el formulario y lo envia a la base de datos al mismo tiempo.

Me gustaria que primero comprobase, y si todo esta correcto que lo mandara a la base de datos mediante php.

Saludos, gracias.

Código HTML:
<form action="contacta.php" method="get" name="datos">
<table>
		<tr>
			<td>Nombre</td>
			<td><input type="text" name="nombre"></td>
		</tr>
		<tr>
			<td>Empresa/Comunidad</td>
			<td><input type="text" name="comunidad"></td>
		</tr>
		<tr>
			<td>Correo Electronico</td>
			<td><input type="text" name="email"></td>
		</tr>
		<tr>
			<td>
				Consulta:
			</td>
		</tr>
		<tr>
			<td colspan="2">
				<label>
					<textarea name="textarea" cols="45" rows="5" ></textarea>
				</label>
			</td>
		</tr>
		<tr>
			<td colspan="2" align="center"><input type="submit" name="enviar" value="Enviar" onClick="comprobar()" onLoad="confirmar()"> <input type="reset" name="borrar" value="Reset"></td>
		</tr>
	</table>
</form>


  #2 (permalink)  
Antiguo 26/05/2010, 13:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: JavaScript y PHP

deberías colocar la llamada de la función en el evento onsubmit del form, y que la misma función devuelva true o false en caso de que no contener errores

<form ... onsubmit="return comprobar();" >

de esta forma si la función devuelve false, el formulario no se enviará a php
  #3 (permalink)  
Antiguo 26/05/2010, 13:34
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 14 años
Puntos: 0
Respuesta: JavaScript y PHP

donde esta el codigo javascript para verlo?
  #4 (permalink)  
Antiguo 26/05/2010, 14:45
 
Fecha de Ingreso: enero-2009
Mensajes: 455
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: JavaScript y PHP

y el javascript?????????????????????????
  #5 (permalink)  
Antiguo 27/05/2010, 01:59
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: JavaScript y PHP

Perdón por tardar en contestar.

El código javascript esta aqui:

Código HTML:
<script language="javascript">
function comprobaciones () {
function comprobar();
function comprobar_email();
}

function comprobar () {
			var ok;
			ok = true;
			if (datos.nombre.value == ""){
				alert ("Debe escribir su nombre");
				datos.nombre.focus();
				ok = false;
				}
				else {
					if (datos.comunidad.value == "") {
					alert ("Debe escribir el nombre de la Empresa/Comunidad");
					datos.apellidos.focus();
					ok = false;
					}
						
				}
		}
		
		if (ok == true) ok = comprobar_email();

        if (ok == true) ok = confirmar();

        return ok;
    }

function comprobar_email()

    {

        var ok = false;

        var i, mail;

        var punto = 0;

        var arroba = 0;

      
        mail = datos.email.value;

  
        if (mail == "") ok = true;

        else {
  

          for (i=0; i<mail.length; i++)

          {

              if (mail.charAt(i) == '@') arroba=i; 

              if (mail.charAt(i) == '.') punto=i; 

          }
  
  

          if ( (punto!=0) && (arroba!=0) && (punto > arroba))

              ok = true;

          else {

              alert("Compruebe su dirección de correo electrónico");

              datos.email.focus();

          }

        }

        

        return ok;

    }
</script>
        
Hay algo en el codigo que no funciona, el return falla y ahora mismo no veo el fallo :-S.

Saludos, gracias.
  #6 (permalink)  
Antiguo 27/05/2010, 07:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 14 años
Puntos: 0
Respuesta: JavaScript y PHP

<script language="javascript" type="text/javascript">
function validar()
{
//alert(document.form.nom.value);
var f=document.datos;

//************************************************** *****
if (f.comunidad.value == 0)
{
alert("Por favor ingrese su Teléfono");
f.tel.value="";
f.tel.focus();
return false;
}

//************************************************** *****
if (f.email.value == 0)
{
alert("Por favor ingrese su E-Mail");
f.correo.value="";
f.correo.focus();
return false;
}

//************************************************** *****
if (f.texarea.value==0)
{
alert("Por favor indique su país");
f.pais.focus();
return false;
}

//************************************************** *****
//alert("todo ok");
document.form.submit();
}


//************************************************** *****
function limpiar()
{
document.form.reset();
document.form.nom.focus();
}
</script>
  #7 (permalink)  
Antiguo 27/05/2010, 07:58
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 14 años
Puntos: 0
Respuesta: JavaScript y PHP

Cita:
Iniciado por dluxox_ Ver Mensaje
<script language="javascript" type="text/javascript">
function validar()
{
//alert(document.form.nom.value);
var f=document.datos;

//************************************************** *****
if (f.comunidad.value == 0)
{
alert("Por favor ingrese su Teléfono");
f.tel.value="";
f.tel.focus();
return false;
}

//************************************************** *****
if (f.email.value == 0)
{
alert("Por favor ingrese su E-Mail");
f.correo.value="";
f.correo.focus();
return false;
}

//************************************************** *****
if (f.texarea.value==0)
{
alert("Por favor indique su país");
f.pais.focus();
return false;
}

//************************************************** *****
//alert("todo ok");
document.form.submit();
}


//************************************************** *****
function limpiar()
{
document.form.reset();
document.form.nom.focus();
}
</script>
te recomiendo que ocupes este codigo cualquier duda me dices :D
  #8 (permalink)  
Antiguo 27/05/2010, 08:42
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
Tema movido desde PHP a Javascript
  #9 (permalink)  
Antiguo 27/05/2010, 08:48
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: JavaScript y PHP

Me pareceria mas simple utilizar las validaciones de formulario de Dreamweaver. xD
  #10 (permalink)  
Antiguo 30/05/2010, 03:32
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: JavaScript y PHP

Hola,

Antes de nada agradecerte la respuesta.

Este código de abajo no resuelve mi problema.

Mi problema es el siguiente:

Ahora mismo, mientras comprueba el formulario los datos están siendo enviados a la base de datos sean correctos o no. El javascript y el php funcionan a la vez.

Lo que yo pretendo, es que primero compruebe el formulario y si todo es correcto, que lo mande a la BD.


Muchas gracias.

Saludos.


Cita:
Iniciado por dluxox_ Ver Mensaje
<script language="javascript" type="text/javascript">
function validar()
{
//alert(document.form.nom.value);
var f=document.datos;

//************************************************** *****
if (f.comunidad.value == 0)
{
alert("Por favor ingrese su Teléfono");
f.tel.value="";
f.tel.focus();
return false;
}

//************************************************** *****
if (f.email.value == 0)
{
alert("Por favor ingrese su E-Mail");
f.correo.value="";
f.correo.focus();
return false;
}

//************************************************** *****
if (f.texarea.value==0)
{
alert("Por favor indique su país");
f.pais.focus();
return false;
}

//************************************************** *****
//alert("todo ok");
document.form.submit();
}


//************************************************** *****
function limpiar()
{
document.form.reset();
document.form.nom.focus();
}
</script>
  #11 (permalink)  
Antiguo 30/05/2010, 04:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: JavaScript y PHP

Cita:
Iniciado por maycolalvarez Ver Mensaje
deberías colocar la llamada de la función en el evento onsubmit del form, y que la misma función devuelva true o false en caso de que no contener errores

<form ... onsubmit="return comprobar();" >

de esta forma si la función devuelve false, el formulario no se enviará a php
La respuesta de maycolalvarez, es la correcta, y parece que nadie le hace caso

Cita:
Iniciado por kalvinman Ver Mensaje
Me pareceria mas simple utilizar las validaciones de formulario de Dreamweaver. xD
DW es un editor caótico tal como sus códigos. Mi recomendación es evitarlo.

Más información: El abc de los formularios

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 30/05/2010, 04:38
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: JavaScript y PHP

Hola
En primera, es muchisimo mejor manejar funciones con librerias js,
así que recomiendo que te pases a alguna (jquery, etc)

por ahora, revise el javascript que estan manejando, no concuerdan nombres de campos, y por esto no funciona, aquí dejo código completo funcionando

Código HTML:
Ver original
  1. <script language="javascript" type="text/javascript">
  2. function validar()
  3. {
  4. //alert(document.form.nom.value);
  5. var f=document.datos;
  6. //************************************************** *****
  7. if (f.nombre.value == 0)
  8. {
  9. alert("Por favor ingrese su nombre");
  10. f.nombre.value="";
  11. f.nombre.focus();
  12. return false;
  13. }
  14. //************************************************** *****
  15. if (f.comunidad.value == 0)
  16. {
  17. alert("Por favor ingrese su comunidad");
  18. f.comunidad.value="";
  19. f.comunidad.focus();
  20. return false;
  21. }
  22. //************************************************** *****
  23.  if (f.email.value == "")
  24. {
  25. alert("Por favor ingrese su E-Mail");
  26. f.email.value="";
  27. f.email.focus();
  28. return false;
  29. }
  30. //************************************************** *****
  31.  if (f.textarea.value==0)
  32. {
  33. alert("Por favor use el textarea");
  34. f.textarea.focus();
  35. return false;
  36. }
  37.  
  38. //************************************************** *****
  39. //alert("todo ok");
  40. document.form.submit();
  41. }
  42.  
  43.  
  44. //************************************************** *****
  45. function limpiar()
  46. {
  47. document.form.reset();
  48. document.form.nom.focus();
  49. }
  50. <form action="contacta.php" method="get" name="datos" onSubmit="return validar()"">
  51.         <tr>
  52.             <td>Nombre</td>
  53.             <td><input type="text" name="nombre"></td>
  54.         </tr>
  55.         <tr>
  56.             <td>Empresa/Comunidad</td>
  57.             <td><input type="text" name="comunidad"></td>
  58.         </tr>
  59.         <tr>
  60.             <td>Correo Electronico</td>
  61.             <td><input type="text" name="email"></td>
  62.         </tr>
  63.         <tr>
  64.             <td>
  65.                 Consulta:
  66.             </td>
  67.         </tr>
  68.         <tr>
  69.             <td colspan="2">
  70.                 <label>
  71.                     <textarea name="textarea" cols="45" rows="5" ></textarea>
  72.                 </label>
  73.             </td>
  74.         </tr>
  75.         <tr>
  76.             <td colspan="2" align="center"><input type="submit" name="enviar" value="Enviar">  <input type="reset" name="borrar" value="Reset"></td>
  77.         </tr>
  78.     </table>
  79. </form>

saludos
  #13 (permalink)  
Antiguo 30/05/2010, 05:17
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: JavaScript y PHP

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola
En primera, es muchisimo mejor manejar funciones con librerias js,
así que recomiendo que te pases a alguna (jquery, etc)
...
saludos
Otra afirmación de la que discrepo.

Usar toda una librería para una validación, que si es correcta y está bien hecha tan solo necesitaría unas pocas líneas.

Depender de librerías debería implicar leer la documentación, y eso creo que son muy pocos los que lo hacen (fíjate las pregunas de ese foro... )

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #14 (permalink)  
Antiguo 30/05/2010, 05:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 42
Antigüedad: 14 años
Puntos: 0
Respuesta: JavaScript y PHP

Hola,

Caricatos y maycolalvarez tenían razón. Pero tenía un problema con algún return y por eso no funcionaba.

Copie el código de mortiprogramador y ahora funciona perfectamente.

Muchas gracias a todos por molestaros en contestar mis dudas.

Saludos.
  #15 (permalink)  
Antiguo 30/05/2010, 06:16
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: JavaScript y PHP

Hola Caricatos
Bueno, pues son pros y contras

En todo caso, sea cualquier opción, terminan
aquí preguntandonos, y bueno, la documentación
de jquery no es tan enredada como otras que he visto

Pero viendolo desde otra arista, pues claro,
eso conllevaría un mayor tiempo de respuesta

Como sea, por aquí estaremos para solventar esos issues
saludos

Etiquetas: php
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 13:01.