Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2009, 20:11
nestorvaldez
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 20 años, 6 meses
Puntos: 0
Insertar registro en php/mysql usando Ajax

Saludos amigos, necesito ayuda urgente algun ejemplo para guardar registro en mi BD Mysql usando Ajax.
Anteriormente usaba un archivo con el formulario y otro archivo que guardaba y cargaba otra pagina y es donde me dice el mensaje que le pongo de registrado satisfactoriamente. Quiero q no me cargue la segunda pagina y no quiero q me presnte el mensaje en la 2da pagina sino en el mismo formulario en alguna parte que escoja para presentar.

Buscando en internet encontre un ejemplo para guarda usando Ajax es el sgte, pero cuando lo pruebo no me GUARDA NADA y no se donde poner la parte de los mensajes de error o cualquier mensaje.

Codigo, a ver que estoy haciendo mal

REGISTRO.PHP (formulario)
Código PHP:
<div id="registro">
  <
form id="registro" method="post" action="" onSubmit="GuardarRegistro(); return false">
  <
table id="tabla" width="850" border="0" cellpadding="0" cellspacing="0">
  
  <
tr>
    <
td width="162" height="32">&nbsp;</td>
    <
td width="39">&nbsp;</td>
    <
td colspan="4" bgcolor="#EBEEF1"><span class="Estilo3">REGISTRO GRATIS</span></td>
    </
tr>
  <
tr>
    <
td height="44">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td colspan="4" class="raya"><class="Estilo2">Mensaje.</p>
      <
class="Estilo2">Registro f&aacute;cil y sencillo.</p></td>
    </
tr>
  <
tr>
    <
td height="27">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td><strong>Detalle perfil</strong></td>
    <
td>&nbsp;</td>
    <
td colspan="2" >-</td>
    </
tr>
  <
tr>
    <
td height="27">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td width="143">Nombre : <span class="Estilo1">*</span></td>
    <
td colspan="2"><label>
      <
input name="nombre" type="text" id="nombre" size="40" maxlength="255" />
    </
label></td>
    <
td width="233">&nbsp;</td>
  </
tr>
  <
tr>
    <
td height="27">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td>Email : <span class="Estilo1">*</span></td>
    <
td colspan="2"><input name="email" type="text" id="email" size="40" maxlength="255" /></td>
  </
tr>
  <
tr>
    <
td height="27">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td>Confirmar email : <span class="Estilo1">*</span></td>
    <
td colspan="2"><input name="email2" type="text" id="email2" size="40" maxlength="255" /></td>
    </
tr>
  <
tr>
    <
td height="27">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td>Telefono : <span class="Estilo1">*</span></td>
    <
td colspan="2"><input name="telefono" type="text" id="telefono" size="40" maxlength="12" /></td>
    <
td>&nbsp;</td>
  </
tr>
  <
tr>
    <
td height="27">&nbsp;</td>
    <
td>&nbsp;</td>
    <
td>Celular :</td>
    <
td colspan="2"><input name="celular" type="text" id="celular" size="40" maxlength="12" /></td>
    <
td>&nbsp;</td>
  </
tr>
    <
td colspan="3"><input type="submit" name="Guardar" id="Guardar" value="Guardar..." class="bordemenu" /></td>
    <
td>&nbsp;</td>
  </
tr>
</
table>
  </
form>
</
div>
<!-- 
End Registro --> 
ajax.js
Código PHP:
function objetoAjax(){
    var 
xmlhttp=false;
    try {
        
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (
e) {
        try {
           
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (
E) {
            
xmlhttp false;
          }
    }

    if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
        
xmlhttp = new XMLHttpRequest();
    }
    return 
xmlhttp;
}

function 
GuardarRegistro(){
  
//donde se mostrará lo resultados
  
divResultado document.getElementById('resultado');
  
divResultado.innerHTML'<img src="anim.gif">';
  
//valores de las cajas de texto
  
nombre=document.registro.nombre.value;
  
email=document.registro.departamento.value;
  
telefono=document.registro.telefono.value;
  
celular=document.registro.celular.value;

//instanciamos el objetoAjax

    
ajax=objetoAjax();
  
//uso del medoto POST
  //archivo que realizará la operacion
  //registro.php
  
ajax.open("POST""add.php",true);
  
ajax.onreadystatechange=function() {
  if (
ajax.readyState==4) {
  
//mostrar resultados en esta capa
  
divResultado.innerHTML ajax.responseText
  
//llamar a funcion para limpiar los inputs
  
LimpiarCampos();
  }
  }

  
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  
//enviando los valores
  
ajax.send("nombre="+nombre+"&email="+email+"&telefono="+telefono+"&celular="+celular)
}

function 
LimpiarCampos(){
  
document.registro.nombre.value="";
  
document.registro.departamento.value="";
  
document.registro.telefono.value="";
  
document.registro.celular.value="";

  
document.registro.nombre.focus();


add.php codigo php para insertar
Código PHP:
<?php
include("functions/db.php");
 
$nombre $_POST['nombre'];
$email $_POST['email'];
$telefono $_POST['telefono'];
$celular $_POST['celular'];

$lenrncstrlen($rnc);
$lencedstrlen($cedula);

/* Do some error checking on the form posted fields */ 

if((!$nombre) || (!$email) || (!$telefono) || (!$clave)){ 
    echo 
'<p><b><font face="Arial" color="#CE0808" style="font-size: 9pt"><span lang="es-do">
Advertencia:</span> </font></b><span lang="es-do">
<font face="Arial" style="font-size: 9pt" color="#CE0808">Usted no ha 
suministrado la siguiente informaci&oacute;n requerida!</font></span></p><br>'
;
    
     if(!
$nombre){ 
        echo 
'<p><font color="#CE0808" face="Arial" style="font-size: 9pt"><b>Nombre es un 
campo requerido.</b> Por favor llene este campo.</font></p><br>'

    }
     if(!
$email){ 
        echo 
'<p><font color="#CE0808" face="Arial" style="font-size: 9pt"><b>Email es un 
campo requerido.</b> Por favor llene este campo.</font></p><br>'

    }
     if(!
$telefono){ 
        echo 
'<p><font color="#CE0808" face="Arial" style="font-size: 9pt"><b>Telefono es un 
campo requerido.</b> Por favor llene este campo.</font></p><br>'

    }
    
    if(!
$clave){ 
        echo 
'<p><font color="#CE0808" face="Arial" style="font-size: 9pt"><b>Clave es un 
campo requerido.</b> Por favor llene este campo.</font></p><br>'

    } 
        
//cuando se suba este script en la el servidor del cliente, cabiar esta direccion por la del cliente
     
echo ('<a href="javascript:history.back(1);"><p><font size="-2" face="Helvetica, Geneva, Arial, SunSans-Regular, sans-serif">Volver y corregir</font></p></a>');
    exit();


if(
$clave == $clave2){
$sql_email_check mysql_query("SELECT USU_EMAIL FROM usuario WHERE USU_EMAIL='$email'");           

$email_check mysql_num_rows($sql_email_check); 

if((
$email_check 0) || ($usuario_check 0)){ 
    echo 
'<p><b><font face="Arial" color="#CE0808" style="font-size: 9pt"><span lang="es-do">
Advertencia:</span> </font></b>
<font face="Arial" style="font-size: 9pt" color="#CE0808">Por favor arregle los 
siguientes errores:</font></p><br>'

    if(
$email_check 0){ 
        echo 
'<p><font face="Arial" style="font-size: 9pt" color="#CE0808">"El <b>Email</b> ya ha 
sido registrado por otro usuario en nuestra base de datos. Por favor provea otra 
direcci&oacute;n de Email!"</font></p>'

        unset(
$email); 
    } 

        
//cuando se suba este script en la el servidor del cliente, cabiar esta direccion por la del cliente
        
echo ('<meta http-equiv="refresh" content="5; url=./registrate.php" />');
    exit();  


if(
$tipo == 'Empresa'){
    if (
$lenrmc 9) {
        echo 
'<p><font face="Arial" style="font-size: 9pt" color="#CE0808">"El Campo  de <b>RNC</b> deben tener la cantidad de digitos requeridos. !"</font></p>'
        echo (
'<meta http-equiv="refresh" content="5; url=./registro.php" />');
        exit();  
        } 
    }
// Introducir la data al la base de datos 
$sql mysql_query("INSERT INTO usuario (USU_NOMBRE, USU_EMAIL, USU_TELEFONO, USU_CELULAR) 
        VALUES('$nombre','$email', '$telefono', '$celular')"

        or die (
mysql_error()); 

if(!
$sql){ 
    echo 
'<p><b><font face="Arial" color="#CE0808" style="font-size: 9pt">Error<span lang="es-do">:</span> </font></b>
<font face="Arial" style="font-size: 9pt" color="#CE0808">Ha ocurrido un error 
creando su cuenta. Por favor contacte al Administrador.</font></p>'

} else { 
    
$userid mysql_insert_id();
    
    
$subject "Su cuenta creada"
    
$message "Distinguido(a) $nombre, 
                 $email,
     
    Su cuenta ha sido creada. Usted esta a un paso de iniciar su sesion. 
     
    Para iniciar su sesion, este link: 
    Bienvenido a , un mundo de oportunidadespara usted.
     
    iniciar su sesion con la siguiente informacion:
    
    Usuario:  $email
    Clave  :  $clave
     
    Cordialmente, 
    Administrador
     
    Por favor no responda a este email!"

     
    
mail($email$subject$message"From: [email protected]"); 

    
    
//cuando se suba este script en la el servidor del cliente, cabiar esta direccion por la del cliente
    
echo ('<meta http-equiv="refresh" content="5; url=./" />');


   
}else{
    
  echo (
'<b><font face="Arial" color="#CE0808">Advertencia:</font><font face="Arial" style="font-size: 9pt"><br>
</font> </b><font face="Arial" style="font-size: 9pt">Sus <font color="#CE0808">
<b>Contrasenas</b></font> no concuerdan!. para volver a intentar
<a href="./registrate.php"><font color="#CE0808">clic aqui!</font></a></font>'
);
    echo (
'<meta http-equiv="refresh" content="5; url=./registro.php" />');
    exit();
}    

?>

Este es el codigo q tengo no se donde poner la parte de los mensajes para q me salga en el mismo formulario Y COMO DIRECCIONARLO, por ejemplo cuando el registro se guardo satisfactoriamente... y el problema q no esta guardando nada en la base de datos. QUE ESTA FALTANDO?