Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: madri09 en 21 Octubre 2012, 13:53 pm



Título: Php para llamada de ajax
Publicado por: madri09 en 21 Octubre 2012, 13:53 pm
Hola, necesito que el archivo valida1.php reconozca la llamada del archivo ajax y haga el  alert('el teléfono ya existe');.

valida1.php

Código
  1. <?php
  2. require_once('Connections/conexion.php');
  3.  
  4. $telefono = $_GET['telefono'];
  5.  
  6. $query="SELECT telefono FROM usuarios WHERE telefono='$telefono'";
  7.  
  8. $result = mysql_query($query);
  9.  
  10. ?>
  11.  

js

Código
  1. function TelefonoExiste(telefono, _callback) {
  2.  
  3.    var ajax=nuevoAjax();
  4.  
  5.    ajax.open("GET", "valida1.php?telefono=" + encodeURIComponent(telefono), true);
  6.  
  7.    ajax.onreadystatechange=function() {
  8.  
  9.        if ((ajax.readyState==4) && (ajax.status==200)){
  10.  
  11.            //ejecutamos _callback como si fuese una función, pasandole el parámetro
  12.  
  13.            _callback(ajax.responseText);
  14.  
  15.        }
  16.  
  17.    }
  18.  
  19.    ajax.send(null);
  20.  
  21. }
  22.  
  23.  
  24.  
  25. function GuardaFormulario() {
  26.  
  27.    //usemos mejor las CoLECCIONES, y variables, así ahorramos codigo y lo hace fácil de mantener
  28.  
  29.    var _telefono = document.forms['form1'].elements['telefono'];
  30.  
  31.  
  32.  
  33.    if (_telefono.value.length == 0){
  34.  
  35.        alert("Insertar el Teléfono");
  36.  
  37.        _telefono.focus();
  38.  
  39.        return 0;
  40.  
  41.    }
  42.  
  43.  
  44.  
  45.    //lamamos a AJAX:
  46.  
  47.    TelefonoExiste(_telefono.value, function(resp) {
  48.  
  49.  
  50.        //evaluamos la respuesta del server, tengase en cuenta que responseText devuelve un string, por lo tanto hay que parsear a entero si se evalúa un numero:
  51.  
  52.        if (parseInt(resp) >= 1) {
  53.  
  54.            //aqui seria bueno un mensaje
  55.  
  56.            alert('el teléfono ya existe');
  57.  
  58.            _telefono.focus();
  59.  
  60.        } else {
  61.  
  62.            //evaluar si se envía el form desde aquí, o se usa ajax para enviarlo.
  63.  
  64.            alert("El formulario se envio con exito!");
  65.  
  66.            document.forms['form1'].submit();
  67.  
  68.        }
  69.  
  70.    });
  71.  
  72.    //como ajax es asincrono, JS NO se detendrá en la llamada anterior, por lo tando hay que retornar false o 0 como lo tienes:
  73.  
  74.    return 0;
  75.  
  76. }
  77.  
  78.  
  79.  

Gracias