porsupuesto, este es el codigo javascript
:
Código:
$('#reg_suscripcion').submit(function() {
$('#cuerpo .contenido_lat .error').css({opacity: '0', display: 'block'});
var verificado = false;
var nombre = $('#nombre').val();
var apellido = $('#apellido').val();
var email = $('#email').val();
var pass = $('#pass').val();
var ubicacion = $('#ubicacion').val();
var sexo = $('#sexo').val();
var codigoantispam = $('#codigoantispam').val();
var respuestaantispam = $('#captcha-resultado').val();
var categorias = $('.categorias').getValue();
var acepto = $('#terminosycondiciones').getValue();
var puede_suscribir =false;
var cadenaverif = 'email='+email;
var verif = $.ajax({ type: "POST", url: "verificador.php", data: cadenaverif, cache: false,
success: function(html){
if (html == '1') {
ferror('Ya existe una cuenta con este correo');
puede_suscribir = false;
$('#email').addClass('errorinput');
return false;
}
}}); // funcion ajax*/
if (nombre == '' || nombre == ' '){
ferror('Porfavor, Ingrese su nombre.');
return false;
}
if (email == '' || email == ' '){
ferror('Porfavor, Ingrese su Email.');
return false;
}
if (pass == '' || pass == ' '){
ferror('Porfavor, Ingrese una contraseña.');
return false;
}
if (ubicacion < 1){
ferror('Porfavor, Elija su ubicación');
return false;
}
if (sexo < 1){
ferror('Porfavor, Especifique su sexo.');
return false;
}
if (respuestaantispam == '' || respuestaantispam == ' ') {
ferror('Porfavor, Ingrese el codigo mostrado.');
return false;
}
if (respuestaantispam != codigoantispam) {
ferror('El codigo no es igual al de la imagen.');
return false;
}
if (categorias == '' || categorias == ' '){
ferror('Porfavor, Elija mas de una categoria.');
return false;
}
if (acepto == '') {
ferror('Debe aceptar los terminos y condiciones.');
return false;
}
var cadenaDatos = 'nombre='+ nombre + '&apellido='+ apellido +'&email=' + email + '&pass=' + pass + '&ubicacion=' + ubicacion + '&sexo=' + sexo + '&categorias=' + categorias;
// Enviamos datos por medio de AJAX al procesador en PHP
$('#cuerpo .contenido_lat .proce_formulario').css({opacity: '0', display: 'block'});
$("#cuerpo .contenido_lat .proce_formulario").animate({opacity: '0.8'}, {queue:false, duration: 400}).html('<img src="imagenes/procesando.gif"/><BR>Porfavor, Espere miestra es suscrito ...');
$.ajax({
type: "POST",
url: "suscripcion.php",
data: cadenaDatos,
cache: false,
success: function(html){
if (html == '1') {
$("#cuerpo .contenido_lat .proce_formulario").html('<img src="imagenes/listo.png"/><BR>Suscripcion Completa!');
}
myTimer = $.timer(900, function(){$("#cuerpo .contenido_lat .proce_formulario").fadeOut(800);}, null);
}}); // funcion ajax
return false;
});
Todos esos datos son enviados a suscripcion.php, y este es el codigo que el contiene:
Código PHP:
<?PHP
include("config.php");
include("inc/funciones.php");
include("inc/funciones_db.php");
if($_POST) :
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$ubicacion = $_POST['ubicacion'];
$sexo = $_POST['sexo'];
$categorias = $_POST['categorias'];
if (!existe_suscriptor($email)) {
$id_usuario = suscripcion($nombre,$apellido,$email,$pass,$ubicacion,$sexo);
suscribirse_a_cat($id_usuario, $categorias);
echo '1';
}
endif;
?>
Ahora todo esta en la funcion suscripcion la cual esta asi
Código PHP:
function suscripcion($nombre, $apellido, $email, $pass, $ubicacion, $sexo){
global $db, $fecha;
$db->ejecutar("INSERT INTO suscriptores (nombre, apellido, email, pass, ubicacion, sexo, referidos, boletines_recibidos, fecha_suscripcion) VALUES('$nombre', '$apellido', '$email', '$pass', '$ubicacion', '$sexo', 0, 0, '$fecha')");
//Aqui comienzo a querer actualizar datos
$ref = (int)$_SESSION['ref'];
if (isset($ref) && is_int($ref)) {
$consulta = $db->consultar("SELECT referidos FROM suscriptores WHERE id=$ref");
$datos_ref = $db->fetchObjetos($consulta);
$cant_ref = (int)$datos_id->referidos;
$cant_ref = $cant_ref+1;
$db->ejecutar("UPDATE suscriptores SET referidos=$cant_ref WHERE id=$ref");
}
$consulta = $db->consultar("SELECT id FROM suscriptores WHERE email = '$email'");
$datos_id = $db->fetchObjetos($consulta);
return $datos_id->id;
}
$_SESSION['ref'] coniene la id del usuario
se que este codigo no deberia estar aqui pero es para que vean, el valor de $ref lo intente enviar por ajax, estaba ubicado en el formulario en un campo oculto.
Probe haber si se enviaba el valor y si se envia, pero la funcion de actualizar no funciona.
solo como dije antes usando el action del formulario.