Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Insertar registro en php/mysql usando Ajax

Estas en el tema de Insertar registro en php/mysql usando Ajax en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/03/2009, 20:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 21 años, 1 mes
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?
  #2 (permalink)  
Antiguo 20/03/2009, 14:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 21 años, 1 mes
Puntos: 0
Saludos amigos, necesito alguien me pueda dar una mano en este problema, estoy algo urgente con este caso..
Gracias antemano ..

Saludos amigos, necesito alguien me pueda dar una mano en este problema, estoy algo urgente con este caso..
Gracias antemano ..

Última edición por GatorV; 21/03/2009 a las 19:13
  #3 (permalink)  
Antiguo 20/03/2009, 16:59
Avatar de Madian  
Fecha de Ingreso: mayo-2008
Ubicación: Villahermosa Tabasco
Mensajes: 13
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Insertar registro en php/mysql usando Ajax

Verifica tu asignacion de variables, de donde sale la variable $clave
Segundo no veo que tengas algun <div id="resultado"></div> que es en donde se supone se cargaran tus respuestas y por ultimo te recomendaria que intentaras usar el scrip add.php sin AJAX eso te serviria, o que instalaras Firefox con el pluging para debugs que sellama firebug el cual es muy util para verifcar los envios y respuestas con AJAX
  #4 (permalink)  
Antiguo 21/03/2009, 23:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 21 años, 1 mes
Puntos: 0
Respuesta: Insertar registro en php/mysql usando Ajax

la Variable $clave existe, solo que quite todos los campos y solo deje 4 por el espacio para poner el post.
Inserte el <div id="resultado"></div> y no me presenta ningun resultado.
y no se que sucede que no me sta guardando nada en la base de datos, es la primera vez que hago algo con Ajax y no comprendo mucho necesito alguien me oriente para seguir, no se por q no esta guardando... por favor alguien analizarme el codigo que estoy utilizando., Que estoy haciendo mal... Gracias...
  #5 (permalink)  
Antiguo 23/03/2009, 22:25
 
Fecha de Ingreso: diciembre-2008
Mensajes: 54
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Insertar registro en php/mysql usando Ajax

quiza sea por uqe nunca te estas conectando a la base de datos o lo haces en otro script?
  #6 (permalink)  
Antiguo 09/02/2010, 12:06
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Insertar registro en php/mysql usando Ajax

Hola
Copie tu codigo y el unico cambio fue en el formulario
<form name="registro" method="post" action="" onSubmit="GuardarRegistro(); return false">
Esta funcionando
Saludos
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 17:04.