Foros del Web » Programando para Internet » PHP »

validar disponibilidad

Estas en el tema de validar disponibilidad en el foro de PHP en Foros del Web. hola, bueno estoy haciendo una validacion con el jquery validate usando el remote para mandar un mensaje de que el nombre ya existe, hasta ahi ...
  #1 (permalink)  
Antiguo 15/08/2013, 22:51
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta validar disponibilidad

hola, bueno estoy haciendo una validacion con el jquery validate usando el remote para mandar un mensaje de que el nombre ya existe, hasta ahi todo bien el script lo tengo asi:

Código:
$('#form-estudiante').validate(
                {
                    rules: {
                        email: {
                            required: true, //para validar campo vacio
                            email: true, //para validar formato email
                            //remote: {url: "views/intranet/pages/estudiante/validar.php", type: "post"}
                            remote: {url: "validar.php", type: "post"}
                        },
.....
....
....
y cree un archivo php llamado validar.php con este codigo:

Código PHP:
try {
    
$link = new PDO('mysql:host=localhost;dbname=database;charset=UTF-8''root''123456');
    
$consulta 'SELECT COUNT(*) FROM estudiante WHERE nombre =:nombre or email=:email';
    
$usr_check $link->prepare($consulta);
    
//$stmt = $con->prepare($consulta);
    //$usr_check->bindParam(1, $_POST['nombre'], PDO::PARAM_STR);
    
$usr_check->bindParam(":nombre"$_POST['nombre']);
    
$usr_check->bindParam(":email"$_POST['email']);
    
$usr_check->execute();
    if (
$usr_check->fetchColumn() == 0)
        echo 
"true";
    else{
        echo 
"false";
    }
} catch (
PDOException $e) {
    echo 
"Error al consultar: " $e->getMessage();

hasta ahi todo correcto, funciona de maravilla, pero en donde tengo mi modelo es en otro archivo llamado estudianteModel.php donde estan los insert, update y delete es ahi donde quiero insertar ese codigo pero dentro de una funcion por ejemplo public function validate(){
el codigo de arriba
}

y poner en el remote esa direccion

remote: {url: "models/estudianteModel.php", type: "post"}

ahi es donde surge el problema y no pasa nada no muestra el mensaje de que el usuario ya esta en uso, alguien tiene alguna idea de como solucionar esto?

el formulario lo tengo asi

Código PHP:
<?php
require_once '../../../../models/estudianteModel.php';

$users users::singleton_user();
$id $_POST['id'];

$data $users->validar_duplicados();

if (
$id 0) {
    
$data $users->get_usuarios_id($id);
} else {
    
$data $users->get_usuarios_limpio();
}
?>
<form class="form-horizontal" id="form-estudiante">
    <div class="control-group">
        <label class="control-label" for="codigo">Nombre</label>
        <div class="controls">
            <input type="text" id="nombre" class="input-xlarge required" name="nombre" value="<?php echo $data[0]["nombre"?>"/>
            <div id="msgUsuario"></div>  
        </div>

    </div>
    <div class="control-group">
        <label class="control-label" for="nombre">Email</label>
        <div class="controls">
            <input type="text" id="email" class="input-xlarge required email" name="email" value="<?php echo $data[0]["email"?>"/>
            <div id="msgEmail"></div>  
        </div>
    </div> 
    <div id="Info"></div>
</form>
y agregue esto: $data = $users->validar_duplicados(); para ver si me llamaba a esa funcion pero no :( si alguien me pudiera dar alguna sugerencia se lo agradeceria!!..
  #2 (permalink)  
Antiguo 16/08/2013, 15:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: validar disponibilidad

¿que FW usas?: puede ser que como la petición es POST el mismo espere el token CSRF, tal cual lo hacen Codeigniter y Yii

lo ideal es que uses una consola como Firebug y veas el verdadero error que te genera el servidor, y así obtener más detalles.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 19/08/2013, 02:15
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: validar disponibilidad

hola gracias por responder, bueno no uso ningun FW el script me funciona bien me muestra en tiempo real que el nombre ya esta en uso lo unico q deseo es que la consulta ponerlo dentro de una funcion (ya q lo tengo en un archivo aparte) en mi modelo ahi es donde estoy trabado nose como hacerle para llamar a esa funcion y que me muestre de que el nombre ya esta en uso
  #4 (permalink)  
Antiguo 01/09/2013, 20:53
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: validar disponibilidad

Hola despues de unos dias de ir haciendo otras cosas, hoy recien pude solucionar lo que queria, en mi controller solo puse esto:

Código PHP:
$usuarios Users::singleton_user();

$usuarios->verificar_duplicados(); 
y en mi modelo

Código PHP:
public function verificar_duplicados() {
        try {
                
$consulta "SELECT * FROM estudiante WHERE nombre =:nombre OR email=:email";
                
$query $this->dbh->prepare($consulta);
                
$query->bindParam(":nombre"$_POST['nombre']);
                
$query->bindParam(":email"$_POST['email']);
                
$query->execute();
            if (
$query->fetchColumn() == 0) {
                echo 
"true";
            } else {
                echo 
"false";
            }
        } catch (
PDOException $e) {
            echo 
"Error al consultar: " $e->getMessage();
        }
    } 
hasta ahi todo bien cuando voy a insertar pero cuando quiero editar por ejemplo solo un campo digamos el email el nombre me lo toma como que ya existe probe ponerle un filtro a la consulta :
Código PHP:
"SELECT * FROM estudiante WHERE (nombre =:nombre OR email=:email) AND id !=:id"
pero no me funciona alquien tiene alguna idea de como lo podria solucionar o que es lo que estoy obviando o haciendo mal porfavor se los agradeceria.

Etiquetas: disponibilidad, formulario, select, sql, usuarios
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 06:17.