Foros del Web » Programando para Internet » Javascript »

problema al validar datos con javascrip usando ajax php y myql

Estas en el tema de problema al validar datos con javascrip usando ajax php y myql en el foro de Javascript en Foros del Web. hola gente del foro tengo una prejunta sobre html, ajax, javascript y php la cosa es que quiero editar un elemento de la base de ...
  #1 (permalink)  
Antiguo 27/04/2013, 01:45
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 1
problema al validar datos con javascrip usando ajax php y myql

hola gente del foro tengo una prejunta sobre html, ajax, javascript y php

la cosa es que quiero editar un elemento de la base de dato, y quiero que al realizar sumit
se valide si los datos ya existan con anterioridad, los datos a manejar son los de un usuario, el nombre del usuario y su tipo los cuales son cargado por medio de php con eso todo bien, al hacer sumit llamo a una función de javascrip verifico que seleccione una opcion
validad de un objeto <select> realizo una llamada ajax con javascript la cual me devuelve los datos correctamente, los cuales son true o false los cuales son para ver si los datos existen o no para no duplicar basicamente el nombre de usuario, pero nose como rescatar los datos para usarlos,y mandar una aler si ya existen los datos y que ingrese otro, adjunto mi codigo

Código PHP:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="jquery.min.js"></script>
<link rel="stylesheet" href="style3.css">
<script>
    function validarfrom(valor){
         if(document.forms["frm1"]["usuario"].value==0){//valido que el input tipo select no sea el valor opcion
             alert("Selecione a un tipo de usuario");
             return false;
         }else{
             dato = consultar(valor);
//aca mi problema no resivo los datos y esta claro por que no llamo ala funcion procesar eventos la cual devuelve los datos y los cuales nose como rescatar para usar los
             return false;
         }        
    }
    //aplico ajax con jquery 
    function consultar(valor){
        $.get("validar_usuario.php",{nombre:valor},procesarEventos); 
    }
    
    function procesarEventos(datos){
            return datos;//aca optengo el valor a recatar y me lo muestra bien y todo pero nose como devolverlo o rescatarlo
    }
</script>
<title>Usuario</title>
</head>

<body>
    <section id="contenedor">
        <h1>Editar usuario</h1>
        <?php
            
require( "variables.php" );
            echo 
"<form name='frm1' action='edit_user.php' onsubmit='return validarfrom(nombre.value)' method='post'>";//al hacer sumit llamo a la funcion 
            
echo "<ul>";
            
$h mysql_connect$host$admin_name$admin_pass ) or die( "ERROR al conectar al servidor." );
            if( isset( 
$h ) ){
                        
$db mysql_select_db$db_name$h ) or die( "ERROR al abrir base de datos." );
                        if( isset( 
$db ) ){
                            
$sql "SELECT * FROM usuario WHERE nombre='".$_GET["usuario"]."'";
                            
$res mysql_query$sql$h ) or die( "ERROR al ejecutar instruccion SQL.");
                            while( 
$fila mysql_fetch_row$res ) ){
                                
session_start();
                                
$_SESSION['id_usuario']=$fila[0]; 
                                echo 
"<li><label >Nombre:</label></li>";
                                echo 
"<li><input type='text' name='nombre' required value=\"".$_GET['usuario']."\" /></li>";
                                if(
$fila[3]==1){
                                    echo 
"<li><label >Tipo de usuario</label></li>";
                                    echo 
"<li><select name='usuario' required >"
                                    echo 
"<option value='0'>Elegir una opciones</option>";
                                    echo 
"<option value='1' SELECTED>Adminitrador</option>";
                                      echo 
"<option value='2'>Garzon</option>";
                                      echo 
"<option value='3'>Cocinero</option>";
                                    echo 
"</select></li>";
                                }elseif(
$fila[3]==2){
                                    echo 
"<li><label >Tipo de usuario</label></li>";
                                    echo 
"<li><select name='usuario' required >"
                                    echo 
"<option value='0'>Elegir una opciones</option>";
                                    echo 
"<option value='1'>Adminitrador</option>";
                                      echo 
"<option value='2' SELECTED>Garzon</option>";
                                      echo 
"<option value='3'>Cocinero</option>";
                                    echo 
"</select></li>";
                                }elseif(
$fila[3]==3){
                                    echo 
"<li><label >Tipo de usuario</label></li>";
                                    echo 
"<li><select name='usuario' required >"
                                    echo 
"<option value='0'>Elegir una opciones</option>";
                                    echo 
"<option value='1'>Adminitrador</option>";
                                      echo 
"<option value='2'>Garzon</option>";
                                      echo 
"<option value='3'SELECTED>Cocinero</option>";
                                    echo 
"</select></li>";
                                }

                                echo 
"<li><input type='submit' name='submit' value='guardar'><a href='ver_usuario.php'>volver</a></li>";
                            }
                            
                        }else{
                                echo 
"<label>Se produjo un error no se pudo ingresar el categoria intentelo nuevamente</label>";
                        }
                        
                    }else{
                        echo 
"<label>Se produjo un error no se pudo ingresar el categpria intentelo nuevamente</label>";
                    }
                    
mysql_close($h);
        
            
            
            echo 
"</ul>";
            echo 
"</form>";
        
?>
    </section>

</body>
</html>
aca el archivo que verifica si los datos existen o no

Código PHP:
<?php
    header
('Content-Type: text/html; charset=ISO-8859-1');
    require( 
"variables.php" );
    
$h mysql_connect$host$admin_name$admin_pass ) or die( "ERROR al conectar al servidor." );
                if( isset( 
$h ) ){
                    
$db mysql_select_db$db_name$h ) or die( "ERROR al abrir base de datos." );
                    if( isset( 
$db ) ){
                        
$sql " select * from usuario where nombre='".$_GET['nombre']."'";
                        
$res mysql_query$sql$h ) or die( "ERROR al ejecutar instruccion SQL." );
                        if(
mysql_num_rows($res)==0)
                            echo 
"false";
                        else
                            echo 
"true";
                    }    
                }     
                
mysql_close($h);
?>

en el codigo deje unos comentarios basado al problema.
bueno de antemanos gracia por su ayuda le di varias vuelta al asunto de como realizarlo
pero no llege a puerto trate usando variables globales, pense en hacer un div oculto y guardarlo ahi pero no supe como
  #2 (permalink)  
Antiguo 27/04/2013, 14:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: problema al validar datos con javascrip usando ajax php y myql

primero: AJAX es asincrono, por lo cual NO puedes obtener los datos de ésa manera

segundo: procesarEventos() se ejecuta cuando el XmlHttpResquest recibe la respuesta (onreadystatechange), y como te indique anteriormente, es de forma asíncrona, por el cual es inutil hacer return, y mucho menos esperar que el return se propage en consultar() si dicha función no hace un return, los valores de retorno no son implícitos entre llamadas de funciones, y mucho menos por callbacks como el onreadystatechange

tercero: validar con ajax no es recomendable, sí, puedes hacer una consulta para verificar que el dato existe y evitar enviar el form, pero si el usuario desactiva javascript no ha forma de evitarlo, por ello debes de validar también en el lado donde procesas la data, o enviar todo por ajax.

Consulte un manual de AJAX
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 08/05/2013, 13:34
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años
Puntos: 1
Respuesta: problema al validar datos con javascrip usando ajax php y myql

https://accounts.google.com/SignUp?service=mail&continue=https%3A%2F%2Fmail.go ogle.com%2Fmail%2F%3Fhl%3Des%26tab%3Dwm%26ui%3Dhtm l%26zy%3Dl&ltmpl=default&hl=es

ese es un ejemplo de lo que quiero lograr según yo se realiza con ajax ya que es asíncrono y no tengo que recargar el buscador como en el linke dejado el cual es el de gmail crear cuenta donde al ingresar un nombre de cuenta existente inmediatamente manda un mensaje de que el nombre de correo existe la diferencia es que yo lo quería realizar en el submit .
disculpa la demora de mi respuesta.

Última edición por derleguan; 08/05/2013 a las 16:39

Etiquetas: ajax, html, mysql, 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 01:42.