Foros del Web » Programando para Internet » PHP »

Problema al implementar funciones .js en html y php

Estas en el tema de Problema al implementar funciones .js en html y php en el foro de PHP en Foros del Web. Amigos tengo un problema con php y .js resulta que tengo un sistema de login, sencillo y me funciona sin implementar funciones en js pero ...
  #1 (permalink)  
Antiguo 18/07/2010, 09:25
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Problema al implementar funciones .js en html y php

Amigos tengo un problema con php y .js resulta que tengo un sistema de login, sencillo y me funciona sin implementar funciones en js pero cuando implemento estas funciones que solo son dos, validar si los campos se envían vacíos, entonces tengo un problema que no me envia los datos via POST como debería:

Esto es lo que tengo:

script funciones.js

Cita:
function validarlogin()
{
var form=document.form;
var ok1,ok2;
if(form.nombre.value==0)
{
//alert("El campo nombre est� vacio");
document.getElementById("div_usuario").innerHTML=" El campo Nombre está vacio";
form.nombre.value="";
form.nombre.focus();
return false;
}
else
{
document.getElementById("div_usuario").innerHTML=" ";
ok1=true;
}
if(form.password.value==0)
{
//alert("El campo Clave est� vacio");
document.getElementById("div_clave").innerHTML="El campo Clave está vacio";
form.password.value="";
form.password.focus();
return false;
}
else
{
document.getElementById("div_clave").innerHTML="";
ok2=true;
}
//Si todo esta bien se redirecciona al action
if(ok1==true && ok2==true)
{ window.location='login_es.php'; }

}
Este es el html

Cita:
<table width="270" border="0" cellpadding="0" cellspacing="0" align="center" class="Fuentes-Formularios">
<form name="form" method="post" action="login_es.php">
<tr>
<td width="70">Usuario:</td>
<td width="200" align="right"><input type="text" name="nombre">
<div id="div_usuario" class="fuenterror"></div>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td width="70">Clave:</td>
<td width="200" align="right">
<input type="password" name="password" />
<div id="div_clave" class="fuenterror"></div>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="Ingresar" title="Ingresar" onClick="validarlogin();"/>
</td>
</tr>
</form>
</table>
y este es el script php:

Cita:
<?php
session_start();
require_once("conexion.php");

//************************************************** *************
//Preguntamos si el usuario existe en la base de datos
$sql="select nombre from usuarios_es
where
nombre='".$_POST["nombre"]."'";
$res=mysql_query($sql,$con);

if(mysql_num_rows($res)==0)
{
echo "<script type='text/javascript'>
alert('El usuario ".$_POST["nombre"]." no existe en la base de datos');
window.location='index.php';
</script>";
}
else
{ //************************************************** *********
// Ahora preguntamos si el login y password coniciden en la
// base de datos.

$consulta="select*from usuarios_es
where
nombre='".$_POST["nombre"]."'
and
password='".$_POST["password"]."'";
$resultado=mysql_query($consulta,$con);
if(mysql_num_rows($resultado)==0)
{
echo "<script type='text/javascript'>
alert('El usuario y el password ingresados no coinciden');
window.location='index.php';
</script>";
}
else
{
echo "<script type='text/javascript'>
alert('Bienvenido al sistema de gestion academica Helena, presione aceptar para ser redireccionado.');
window.location='/students/index.php';
</script>";
}
//************************************************** *********
}
?>
Nota: cuando quito la validación usando las funciones .js y reemplazo button por submit, me funciona todo, compruebo que los datos enviados por POST llegan al script php y funciona.

el script funciones.js esta aparte del index.php y del login_es.php lo que hago es llamar el script funciones.js desde el head del archivo index.php así:
<script type="text/javascript" languaje="javascript" src="js/funciones.js"></script>

¿Qué puede estar sucediendo?

Ah si hay errores en lo que he hecho como siempre por favor corrijanme.

Última edición por easolano5; 18/07/2010 a las 09:32
  #2 (permalink)  
Antiguo 18/07/2010, 10:52
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Problema al implementar funciones .js en html y php

Te recomiendo mejor que uses jquery es muy sencillo y se ve muy elegante, si gustas pasama tu correo y te paso uno sencillo que tengo
  #3 (permalink)  
Antiguo 18/07/2010, 12:18
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: Problema al implementar funciones .js en html y php

Hay varias cosas con las funciones javascript.

Código javascript:
Ver original
  1. if(form.nombre.value==0)
  2. ...
  3. if(form.password.value==0)
  4. ...
  5. if(ok1==true && ok2==true)
  6. { window.location='login_es.php'; }

Estas revisando de manera incorrecta si un INPUT esta vacio. Debe ser

Código javascript:
Ver original
  1. if(form.nombre.value.length == 0)
igual para la contraseña.

Para ok1 y ok2, si en una variable esperas datos de tipo boolean, no es necesario compararlos contra true o false. Basta con hacer
Código javascript:
Ver original
  1. if ( ok1 && ok2 )

Por ultimo, si redireccionas la pagina con windows.location, no se va a enviar ningun dato que se haya escrito en la forma. Para que se envien los datos tendrias que hacer un submit a la forma

Código javascript:
Ver original
  1. var form=document.form;
  2. ...
  3. if ( ok1 && ok2 ) {
  4.   form.submit();
  5. }

Última edición por posman; 18/07/2010 a las 12:28
  #4 (permalink)  
Antiguo 18/07/2010, 12:46
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Problema al implementar funciones .js en html y php

Cita:
Iniciado por ylellan Ver Mensaje
Te recomiendo mejor que uses jquery es muy sencillo y se ve muy elegante, si gustas pasama tu correo y te paso uno sencillo que tengo
yo creo que es mejor que coloques aqui el codigo, asi todos pueden verlo
  #5 (permalink)  
Antiguo 18/07/2010, 14:16
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Problema al implementar funciones .js en html y php

bueno como me lo pidieron les muestro el codigo

primero nombre a este archivo index.php

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
link rel="stylesheet" href="main.css" type="text/css" media="screen" />

<
title>Ingresar al Sistema</title>



<
style type="text/css">
<!--
#apDiv1 {
    
position:absolute;
    
width:113px;
    
height:17px;
    
z-index:8;
    
left40px;
    
top95px;
}
#apDiv2 {
    
position:absolute;
    
width:139px;
    
height:26px;
    
z-index:9;
    
top161px;
    
left15px;
}
-->
</
style>
</
head>


<
body>
<
form name="form1" method="post" action="inde.php" id="form1">
  <
script type="text/javascript" src="jquery.js"></script> 
  <div id="contenedor">
<div id="divusuario">
  <label for="textfield"></label>
      <input name="username" type="password" class="text " id="username" tabindex="2" size="27" />
</div>
    <div id="contrasena">
      <input name="nombre" type="text" class="text " id="nombre" tabindex="1" size="25" />
    </div>
    
    <div id="boton">
    
    <input tabindex="3" name="send" id="mover"  type="submit" class="submit" value="Enviar Registro" />
    </div>
    <div class="Estilo2" id="titulo">
      <div  id="titulo"align="center">Login de usuario</div>
    </div>
    
    
    <div  id="titulos">Datos necesarios, para ingresar al sistema </div>
    <div id="labelesusuario"><strong>Login</strong>:</div>
    <div id="labelescontrasena"><strong>Password :</strong></div>
    <div id="apDiv1"><span class="small" id="req-nombre">Introduce tu login</span></div>
    <div id="apDiv2"><span class="small" id="req-username">Introduce tu password</span></div>
  </div>
    </div>
<script type="text/javascript" src="funciones.js"></script>
</form>

</body>
</html> 
otro es main.css
[CSS]@CHARSET "UTF-8";
body{/* este codigo sirve para dar el tipo de letra ala otra pagina */

font-family:"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
font-size:12px;
}
.Estilo2 {font-weight: bold; font-size: 18px;}/*para poner en ngrita los titulo*/

#contenedor {
border:solid 2px #b7ddf2;
background:#ebf4fb;
position:absolute;
width:504px;
height:245px;
z-index:1;
left: 163px;
top: 70px;
}
#divusuario {
position:absolute;
width:289px;
height:41px;
z-index:1;
left: 153px;
top: 134px;
}
#contrasena {
position:absolute;
width:268px;
height:39px;
z-index:2;
left: 152px;
top: 73px;
}


#titulo {
position:absolute;
width:496px;
height:27px;
z-index:4;
left: 8px;
top: 0px;
font-size:18px;
}

#titulos{
position:absolute;
width:274px;
height:20px;
z-index:5;
left: 137px;
top: 30px;
}


#labelesusuario {
position:absolute;
width:46px;
height:26px;
z-index:6;
left: 105px;
top: 77px;
}
#labelescontrasena{
position:absolute;
width:79px;
height:23px;
z-index:7;
left: 74px;
top: 140px;
}






#boton {
position:absolute;
width:153px;
height:44px;
z-index:3;
left: 186px;
top: 198px;
}



/* codigo para colocar los errores*/
/***********//***********/
/***********//***********/
labe l{ /*label que contiene lo que esta arriva de la caja de texto*/
display: block;
color: #e4e1cd;
line-height: 2em;
font-size: 14p;
}
/*codgo para diseñar el boton y la caja de texto*/
input.text{ /*para diseñar la cja de texto*/

/*para darle el ancho ala caja de texto*/
background: white ;/*para darle ccolor de fondo ala caja de texto al momento de entrar ala pagina*/
padding: 3px;/*para darle el alto de la caja de texto*/
color: black;/*para darle el color de la letra que se escribira en la caja de texto*/
border: 1px solid #393939;/*para darle el tipoborde ala caj de texto y color*/
font-size: 16px;/*para darle el tamaño de la letra*/
}

input.text.active{/*parab activar el color de la caja de texto al recibir el foco*/
background: #CCCCCC;
border-color: #000;
color: black;
}

input.submit{/*para diseñar el boton*/
width: auto !Important;
background: #999999;
color: #ebf4fb;
padding: 5px;
margin-top: 0.5em;
border: #CCCCCC solid;
}

.requisites.error

{
text-decoration: underline;
background: #fff8cc ;/*para darle un fondo al color del error*/
color: #171717;/*para darle color a la letra del error**/
}



input.error

{
background: #FFFFFF url(img/unchecked.gif) no-repeat scroll right 2px;/*para darle un color al fondo de la caja de texto*/
border-color: #171717;/*para darle color al borde de la caja de texto*/
border:dotted #FF0000;/*para aser el borde punteado con color*/
}


/*para una vez cvompletado poner en notro color la caja de texto*/
input.completado

{
background: #ebf4fb url(img/checked.gif) no-repeat scroll right 2px;/*para darle un fondo al color del error*/
border-color: #171717;/*para darle color al borde de la caja de texto*/
border:solid black;/*para aser el borde punteado con color*/
color:#CCCCCC;/*para darl color ala caja de texto*/
}
[/CSS]

otro es funciones.js
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     //variables globales
  3.     var searchBoxes  = $(".text");
  4.     var inputUsername = $("#username");
  5.     var reqUsername = $("#req-username");
  6.     var x=$("#req-username")
  7.  
  8.     var inputNombre = $("#nombre");
  9.     var reqNombre = $("#req-nombre");
  10.  
  11.                          
  12.  
  13.     //funciones de validacion
  14.     function validateUsername(){
  15.        
  16.         if(!inputUsername.val().match(/^[a-zA-Z]+$/))
  17.         {
  18.                        
  19.             inputUsername.removeClass("completado");
  20.             reqUsername.addClass("error");
  21.             inputUsername.addClass("error");
  22.    
  23.  
  24.             return false;
  25.            
  26.         }
  27.         // SI longitud, SI caracteres A-z
  28.         else
  29.         {
  30.         inputUsername.addClass("completado");
  31.         reqUsername.removeClass("error");
  32.         inputUsername.removeClass("error");
  33.    
  34.  
  35.  
  36.  
  37.             return true;
  38.        
  39.         }
  40.     }
  41.    
  42.     function validateNombre()
  43.     {
  44.    
  45.     if(!inputNombre.val().match(/^[a-zA-Z]+$/))
  46.         {
  47.                        
  48.             inputNombre.removeClass("completado");
  49.             reqNombre.addClass("error");
  50.             inputNombre.addClass("error");
  51.             return false;
  52.            
  53.         }
  54.  
  55.         else
  56.         {
  57.         inputNombre.addClass("completado");
  58.         reqNombre.removeClass("error");
  59.         inputNombre.removeClass("error");
  60.             return true;
  61.        
  62.         }
  63.        
  64.         }
  65.    
  66.    
  67.    
  68.    
  69.     //controlamos la validacion en los distintos eventos
  70.     // Perdida de foco
  71.     inputUsername.blur(validateUsername);  
  72.     inputNombre.blur(validateNombre);  
  73.  
  74.     // Pulsacion de tecla
  75.     inputUsername.keyup(validateUsername);
  76.     inputNombre.keyup(validateNombre);
  77.  
  78.    
  79.     // Envio de formulario
  80.     $("#form1").submit(function(){
  81.         if(validateUsername() & validateNombre() )
  82.             return true;
  83.         else
  84.             return false;
  85.     });
  86.    
  87.     //controlamos el foco / perdida de foco para los input text
  88.     searchBoxes.focus(function(){
  89.         $(this).addClass("active");
  90.     });
  91.     searchBoxes.blur(function(){
  92.         $(this).removeClass("active");
  93.        
  94.        
  95.        
  96.     });
  97.  
  98. });

para q lo vean
  #6 (permalink)  
Antiguo 18/07/2010, 14:19
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Problema al implementar funciones .js en html y php

y el jquery.js busquendo q es muy grande el codigo como para postearlo

y las imagenes no se como enviarlas

Etiquetas: funciones, html, implementar, js
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 01:59.