JQuery - Un ejemplo puede mas que mil palabras

   
Vista:

Un ejemplo puede mas que mil palabras

Publicado por DEVILSITO (9 intervenciones) el 06/01/2013 03:48:42
Mi pregunta (la que he realizado anteriormente) y que al parecer nadie entendio, ahora la acompaño de un ejemplo, pero para empezar la resumo en lo siguiente:
En el HTML ingreso usuario, contraseña y proyecto, dichos campos son validados por el AJAX que direcciona a un PHP y que entregara un mensaje en caso de que alguno de estos campos sean digitados erroneamente. Mi pregunta fundamental es: Una vez que los datos han sido ingresados correctamente ¿como direcciono a una nueva pagina (en esta caso a INDEX10.PHP)?
O mejor dicho, ¿donde coloco el llamado al INDEX10.PHP una vez que el AJAX ya cumplio su tarea (validacion del lado del cliente)?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#form1").submit(function(event){
event.preventDefault();
var usuario = $('input#usuario').val();
var contrasena = $('input#contrasena').val();
var codpry_c = $('input#codpry_c').val();
 
$.ajax({
type: 'POST',
url: 'index8.php',
data: {"username": usuario,"pass" : contrasena, "codpry_c" : codpry_c},
success: function(data) {
$('#mensaje').html(data);
}
});
 
});
});
</script>
 
<style type='text/css'>
b {left:490;position:absolute;}
d {left:627;position:absolute;}
c {left:550;position:absolute;}
center {color:##FF0FFF;}
 
input:focus {
border: 2px solid #000;
background: #F3F3F3;
}
</style>
</head>
<center>
<h1>Identificación de usuario</h1>
<center>
<body onload="document.getElementById('codpry_c').focus()";">
<form name="form1" id="form1" method='POST' action="" onclick="index10.php">
<b>Codigo de proyecto: </b>
<d><input id="codpry_c" name="codpry_c" value="4327" /></d>
<br>
<br>
<b>Usuario : </b>
<d><input id="usuario" name="usuario" value="mca"/></d>
<br>
<br>
<b>Contraseña: </b>
<d><input type='password' id="contrasena" name="contrasena" value="" /></d>
<br>
<br>
<c><input type="submit" value="Aceptar" id="aceptar"></c>
<d><input type="button" value="Abandona" name="boton" id="boton" onclick="location.replace('about:blank')"></d>
</div>
<br>
<br>
<div id="mensaje">
</div>
</form>
</body>
</html>


INDEX8.PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
session_start();
// Llega con : {"username": usuario,"pass" : contrasena, "codpry_c" : codpry_c},
if (isset($_POST['username']) ) {
$usu_x = $_POST["username"];
$pass_x = $_POST["pass"];
$codpry_x= $_POST["codpry_c"];
}
if ($usu_x=="" || $pass_x=="" || $codpry_x=="") {
echo "Datos en blanco no son aceptados";
return false;
}
 
if ($usu_x != 'mca' || $pass_x!=123 ) {
echo "Usuario o Password no estan correctos";
return false;
}
 
if ($codpry_x != 4327 ) {
echo "Proyecto no existe, o no está asociado con este usuario";
return false;
}
 
echo "Los datos de autenticacion fueron ingresados correctamente";
?>


INDEX10.PHP
1
2
3
4
5
6
7
8
<HTML>
<body>
<?php
session_start();
echo "Esta es nueva pagina despues de autenticarse CORRECTAMENTE: "
?>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Un ejemplo puede mas que mil palabras

Publicado por José Manuel josema@orbisapientia.com (5 intervenciones) el 07/01/2013 18:22:46
Hola:

Dada la lógica del desarrollo que planteas, puedes optar por más de una manera de realizar la redirección, pero en este caso, lo más fácil sería utilizar javascript:

window.location.href.

Saludos,

José Manuel
========================
http://www.orbisapientia.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Un ejemplo puede mas que mil palabras

Publicado por DEVILSITO (9 intervenciones) el 11/01/2013 04:53:07
Ok, pero donde lo coloco? Cual es la sintaxis para este ejemplo que muestro?
comprenderas que la colocacion erronea dentro de <scrip> </scrip> del codigo que me sugieres sencillamente no funcionara.
Por eso te reitero la pregunta: ¿ donde coloco dicho codigo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Un ejemplo puede mas que mil palabras

Publicado por xve (557 intervenciones) el 11/01/2013 07:43:08
Hola, haber si te se guiar un poco...

Por lo que veo, quien la valida la pagina web es INDEX8.PHP, y si quieres que despues de validar se vaya a otra pagina, cuando este todo ok, simplemente muestra un 1 por ejemplo. Por lo que reemplaza la linea:
1
echo "Los datos de autenticacion fueron ingresados correctamente";

por:
1
echo "1";


En el ajax que hace la llamada, modifica esto:
1
2
3
4
5
6
7
8
$.ajax({
type: 'POST',
url: 'index8.php',
data: {"username": usuario,"pass" : contrasena, "codpry_c" : codpry_c},
success: function(data) {
$('#mensaje').html(data);
}
});

por (aquí aplicamos lo que dice José Manuel):
1
2
3
4
5
6
7
8
9
10
11
$.ajax({
    type: 'POST',
    url: 'index8.php',
    data: {"username": usuario,"pass" : contrasena, "codpry_c" : codpry_c},
    success: function(data) {
        if(data=="1")
            window.location.href="index10.php";
        else
            $('#mensaje').html(data);
    }
});


Esto es una manera para adaptarse a tu código, aunque lo suyo seria pasar los parámetros por json.

Te recomiendo que tabules tu código... es muy difícil de seguir y entender.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Por fin logre la funcionalidad

Publicado por DEVILSITO (9 intervenciones) el 13/01/2013 04:15:58
XVE:
Efectivamente funciono segun el cambio que me has sugerido (esto, despues de varias semanas de investigacion y consultas). Solo un detalle: el "1" del if debe estar sin comillas.
La parte fundamental del código es:

1
2
3
4
5
6
7
8
9
10
11
$.ajax({
type: 'POST',
url: 'valida.php',
data: {"username": usuario,"pass" : contrasena, "codpry_c" : codpry_c},
success: function(data) {
    if(data==1)
        window.location.href='index10.php?usuario='+usuario;
    else
        $('#mensaje').html(data);
    }
});


Como podemos ver, el metodo de envio es por POST, sin embargo en el php INDEX10.PHP solo reconoce el envio con $usuario=$_GET['usuario'] ya que al colocar $usuario=$_POST['usuario'] emite el siguiente error:
Notice: Undefined index: usuario in C:\EasyPHP-5.3.7RC5\www\estudio8\index10.php on line 6
¿Sera que este window.location.href trabaja exclusivamente con el metodo GET?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Por fin logre la funcionalidad

Publicado por xve (557 intervenciones) el 13/01/2013 11:05:21
Hola Devil, creo que te lias... por post, no pasas usuario, pasas username, pass y codpry_c... no pases parámetros por get si lo puedes evitar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar