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"> </td>
<td width="39"> </td>
<td colspan="4" bgcolor="#EBEEF1"><span class="Estilo3">REGISTRO GRATIS</span></td>
</tr>
<tr>
<td height="44"> </td>
<td> </td>
<td colspan="4" class="raya"><p class="Estilo2">Mensaje.</p>
<p class="Estilo2">Registro fácil y sencillo.</p></td>
</tr>
<tr>
<td height="27"> </td>
<td> </td>
<td><strong>Detalle perfil</strong></td>
<td> </td>
<td colspan="2" >-</td>
</tr>
<tr>
<td height="27"> </td>
<td> </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"> </td>
</tr>
<tr>
<td height="27"> </td>
<td> </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"> </td>
<td> </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"> </td>
<td> </td>
<td>Telefono : <span class="Estilo1">*</span></td>
<td colspan="2"><input name="telefono" type="text" id="telefono" size="40" maxlength="12" /></td>
<td> </td>
</tr>
<tr>
<td height="27"> </td>
<td> </td>
<td>Celular :</td>
<td colspan="2"><input name="celular" type="text" id="celular" size="40" maxlength="12" /></td>
<td> </td>
</tr>
<td colspan="3"><input type="submit" name="Guardar" id="Guardar" value="Guardar..." class="bordemenu" /></td>
<td> </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'];
$lenrnc= strlen($rnc);
$lenced= strlen($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ó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ó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?