ABC con jQuery, Ajax, PHP
En esta ocasión, les traemos un artículo dedicado a construir un completo ABC (Altas, Bajas y Cambios) sobre una tabla MySQL, mediante el uso de las herramientas:
- PHP
- jQuery
- Ajax
- Las acciones de agregar/actualizar,consultar y borrar, se harán desde archivos separados, para esto creamos cada archivo según la necesidad, en el caso de Agregar/Actualizar, en un único archivo se procesan las dos acciones.
- La tabla donde se muestran los registros se cargará dinámicamente, por lo tanto se debe crear el archivo de consulta (llamado getdata.php).
- El archivo modificar.php, muestra el formulario desde donde se llama las acciones de actualizar/agregar y borrar.
- El archivo conex.php contiene las instrucciones de conexión a la base de datos, se debe adecuar al hosting donde se vaya a ejecutar.
CREATE TABLE `tmp_usuarios` ( `user` varchar(20) NOT NULL, `pass` varchar(20) NOT NULL, `correo` text NOT NULL, `estado` tinyint(1) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
<?php
/*Contenido del archivo getdata.php
el cual construye la tabla en html que mostrará los datos de los usuarios
a partir de la tabla tmp_usuarios
*/
include('conex.php');
$sql = "Select * from tmp_usuarios" ;
$resUser = mysql_query($sql, $conex) or die(mysql_error());
$totUser = mysql_num_rows($resUser);
if ($totUser> 0) {
$tabla = '<table width="100%" border="1" id="tblUser">';
$tabla .= '<tr>';
$tabla .= ' <th scope="col">Usuario</th>';
$tabla .= ' <th scope="col">Clave</th>';
$tabla .= ' <th scope="col">Correo</th>';
$tabla .= ' </tr>';
while ($rowUser = mysql_fetch_assoc($resUser)) {
$tabla .= ' <tr>';
$tabla .= ' <td>' . $rowUser["user"]. '</td>';
$tabla .= ' <td>' . $rowUser["pass"]. '</td>';
$tabla .= ' <td>' . $rowUser["correo"]. '</td>';
$tabla .= ' </tr>';
}
$tabla .= ' </table>';
echo $tabla;
}else{
echo "NO hay Información que mostrar";
}
?>
<?php
/*Contenido archivo deluser.php*/
include('conex.php');
$user = $_POST["nombre"];
if(empty($user)) {
echo "0";
return false;
}
$sql = "Delete from tmp_usuarios where user='" . $user ."'" ;
mysql_query($sql, $conex) or die(mysql_error());
echo "1";
?>
<?php
/*
Contenido del archivo saveuser.php
Se procesa el actualizar (update) y el Insertar (Insert)
*/
include('conex.php');
$user = $_POST["nombre"];
$pass = $_POST["password"];
$email = $_POST["email"];
/*Validamos si el Usuario ya existe, de existir, se actualiza, sino se Ingresa*/
$sql = "Select user from tmp_usuarios where user='" . $user . "'" ;
$resUser = mysql_query($sql, $conex) or die(mysql_error());
$totUser = mysql_num_rows($resUser);
if($totUser>0) //Registro ya existe se actualiza
{
$sql = "Update tmp_usuarios set pass='". $pass."',correo='". $email ."' where user='" . $user . "'";
}else{
//Registro nuevo, se ingresa
$sql = "Insert Into tmp_usuarios(user,pass,correo,estado) values ('" . $user ."','" . $pass ."','" . $email ."',0)" ;
}
mysql_query($sql, $conex) or die(mysql_error());
echo "1";
?>
<script type="text/javascript" src="/js/jquery-1.7.1.min.js"></script>
<div id="Usuarios">
<?php include("getdata.php"); ?>
</div>
Podemos observar que incluimos el archivo getdata.php, el cual devuelve la tabla con el resultado de la consulta de la tabla..div_User{
position: absolute;
top: 25%;
left: 25%;
width: 50%;
height: 60%;
padding: 16px;
background: #fff;
color: #333;
z-index:1002;
overflow: auto;
}
<div class="div_User" id="div_User">
$("#adduser").click(function(){
$("#div_User").fadeIn();
$("#div_User").html("<div id='cargando' style='display:none; color: green;text-align:center' width='100%' height='100%'><img width='16' height='16' src='img/ajax-loader.gif' /> Cargando...</b></div>");
$("#cargando").css("margin-left", "auto");
$("#cargando").css("margin-right", "auto");
$("#cargando").css("display", "inline");
$("#div_User").load("modificar.php", function(){
$("#cargando").css("display", "none");
});
});
//Evaluamos los clic que se hacen en cada registro
$('#tblUser tbody tr').live('click', function () {
var sTitle;
var nTds = $('td', this);
var usuario,clave,correo,estado,nivel;
user = $(nTds[0]).text();
pass = $(nTds[1]).text();
mail = $(nTds[2]).text();
$("#div_User").fadeIn();
$("#div_User").html("<div id='cargando' style='display:none; color: green;text-align:center' width='100%' height='100%'><img width='16' height='16' src='img/ajax-loader.gif' /> Cargando...</b></div>");
$("#cargando").css("margin-left", "auto");
$("#cargando").css("margin-right", "auto");
$("#cargando").css("display", "inline");
$("#div_User").load("modificar.php",{user:user,pass:pass,mail:mail} ,function(){
$("#cargando").css("display", "none");
});
});
//Botón Refrescar Presionado
$("#refrescar").click(function(){
$("#Usuarios").html("");
$("#Usuarios").load("getdata.php", function(){});
})
<?php
$user = $_POST["user"];
$pass = $_POST["pass"];
$email = $_POST["mail"];
?>
<form class='contacto' method='POST' action='' id="formu">
<div><label>Usuario (*):</label><input type='text' class='nombre' name='nombre' id='usuario' value='<?php echo $user;?>'></div>
<div><label>PassWord (*):</label><input class='nombre' name='password' id='password' value='<?php echo $pass; ?>' type="password"></div>
<div><label>Tu Email (*):</label><input type='text' class='email' name='email' id='email' value='<?php echo $email; ?>'></div>
<div><input type='submit' value='Guardar' class='boton' name='boton' id="enviar">
<?php if(!empty($user)) {?>
<input type='button' value='Borrar' class='boton' name='boton' id="Borrar">
<?php }?>
<input type='button' value='Cerrar' class='boton' name='boton' id="Cerrar">
</div>
</form>
/*Evento Click Botón Enviar*/
$("#enviar").click(function(evento){
evento.preventDefault(); //Evitamos que el formulario se vaya
/*Validación*/
var emailreg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; //Creamos las reglas para validar el correo
$(".error").fadeOut().remove();
if ($("#usuario").val() == "") {
//alert("Usuario Inválido");
$("#usuario").focus().after('<span class="error">Usuario Inválido</span>');
return false;
}
if ($("#password").val() == "") {
//alert("Password Requerido");
$("#password").focus().after('<span class="error">Password Requerido</span>');
return false;
}
if ($("#email").val() == "" || !emailreg.test($("#email").val())) {
//alert("Dirección de Correo Inválida");
$("#email").focus().after('<span class="error">E-Mail Inválido</span>');
return false;
}
/*Fin Validación*/
//Determinanos los datos del formulario y los serializamos
var datos = $("#formu").serialize();
//alert(datos);
// Enviamos el formulario usando AJAX
$.ajax({
type: 'POST',
url: 'saveuser.php',
error: function(data){
//Si sucedió algo, se notifica
$(".result_fail").fadeIn();
$(".result_fail").html("Error Procesando Datos");
},
data: datos,
// Mostramos un mensaje con la respuesta de PHP
success: function(data) {
if(data==1){
/*Reconstruimos la tabla*/
$("#Usuarios").html("");
$("#Usuarios").load("getdata.php", function(){});
/*Fin Reconstruir la tabla*/
$("#div_User").hide();
}
else{
$(".result_fail").fadeIn();
$(".result_fail").html("Error " . data);
return false;
}
}
});
});
/*Fin Evento Click Botón Enviar*/
/*Evento Click Botón Borrar*/
$("#Borrar").click(function(){
/*Confirmar si se desea borrar el registro*/
var Resp = confirm("Eliminar Registro para " + $("#usuario").val());
if(Resp){
/*Escogió opción ACEPTAR*/
//Determinanos los datos del formulario y los serializamos
var datos = $("#formu").serialize();
// Enviamos el formulario usando AJAX
$.ajax({
type: 'POST',
url: 'deluser.php',
error: function(data){
//Si sucedió algo, se notifica
$(".result_fail").fadeIn();
$(".result_fail").html("Error Eliminando Registro");
},
data: datos,
// Mostramos un mensaje con la respuesta de PHP
success: function(data) {
if(data==1){
/*Reconstruimos la tabla*/
$("#Usuarios").html("");
$("#Usuarios").load("getdata.php", function(){});
/*Fin Reconstruir la tabla*/
$("#div_User").hide();
}
else{
$(".result_fail").fadeIn();
$(".result_fail").html("Error " . data);
return false;
}
}
});
}
})
/*Fin Evento Click Botón Borrar*/
Tenemos 2 visitantes y ningun miembro en Línea
DEBS News Ticker
-
ABC con jQuery, Ajax, PHP
ABC con jQuery, Ajax, PHP
En esta ocasión, les traemos un artículo dedicado a construir



Somos un grupo de profesionales que ponemos a su disposición nuestros conocimientos para ayudarle en el desarrollo de su empresa, tanto para la presencia online, como para la gestión de los procesos de su empresa.









