Mensaje de script php con jquery ajax

21 views
Skip to first unread message

Nicolas Ezequiel Almonacid

unread,
Aug 19, 2014, 6:53:12 PM8/19/14
to programa...@googlegroups.com
Estimados un saludo cordial a todos, esta vez con una consultilla en base a jquery y ajax, comento mi situacion...

tengo una pagina php (index.php) cn un formulario, esta pagina recibe los valores y llama a un archivo que hace lo siguiente:

Tiene una funcion para cargar imagenes, y a su vez invoca a la funcion para hacer el insert a la base de datos.(insert.php)

Ahora bien, la funcion para hacer el insert (la que tiene la consulta sql)esta en un archivo aparte (funciones.php)

Lo que tengo que hacer es que en index.php, en un div (div id="resultado"), me muestre el la respuesta que tiene la funcion insertar del insert (ok o error), actualmente me hace el insert, pero me muestra el mensaje fuera del index (recarga de pagina y me lo muestra en insert.php) lo que busco es que me lo muestre en el div resultado de index.php.

Tengo un formulario trabajando con lo que necesito, con la diferencia que este formulario, llama a un archivo php (procesa.php) que tiene todo en el mismo archivo, no separadocomo en este caso. MI pregunta es, como hago para llamar a la funcion insert, en mi jquery....

Con este codigo jquery tengo el ejemplo funcionanado en una web:
$(document).ready(function(){
$
("#frmavisos").validate({
   
/*Declaramos las reglas de validacion
        *Reglas:
        *required:true -> Campo Requerido
        *maxlength:2 -> Maximo de Caracteres (Se debe crear el mensaje en 'messages')
        *minlength:2 -> Minimo de Caracteres (Se debe crear el mensaje en 'messages')
        *
        */

    debug
: false,
    rules
:{
            titulo_aviso
:{required:true},//validacion para el Select Asunto
            nombre
:{required:true},//validacion para el input nombre
            telefono_celular
:{required:true},//validacion para el input telefono
            correo_electronico
:{required:true, email:true},//validacion para el input email
            titulo_aviso
:{required:true},//validacion para el Select Asunto
            mensaje
:{required:true},//validacion para el input comentario
            captcha
:{required:true, maxlength:4,minlength:4 }//validacion para el input captcha
       
},
       
//Mensajes para las validaciones
        messages
:{
            nombre
:{ required:"Debe Ingresar su Nombre"},//Mensaje para el input nombre
            telefono
:{ required:"Debe Ingresar Numero Telefonico"},//Mensaje para el input Telefono
            correo
:{ required:"Debe Ingresar Email", email:"Email no Valido"},//Mensaje para el input email
            asunto
:{ required:"Debe Seleccionar Asunto"},//Mensaje para el Select Asunto
            mensaje
:{ required:"Debe Ingresar Comentario o Consulta"},//Mensaje para el input comentario
            captcha
:{ required:"Debe Ingresar Codigo de Seguridad",minlength:"Debe ingresar los 4 carcteres",
            maxlength
:"Solo 4 caracteres"}//Mensaje para el input captcha
       
},

submitHandler
: function(form) {
// do other stuff for a valid form
$
.post('inc/envia_form_principal.php', $("#formularioPrincipal").serialize(),
function(data) {
   
$
('#resultado').html(data);
/*$('#resultado').fadeOut(5000);*/

});
$
("#formularioPrincipal")[0].reset(); //Resetea el Formulario
}

});
});
pero en este caso no me funciona, ya que envia_form_principal.php tiene todo el codigo dentro del mismo archivo, y en mi caso actual insert.php tiene solo este codigo:
require_once '../inc/funciones.php';

$obj
= new Avisos();

if(isset($_POST['enviar'])){
           
       
//Verificamos la cantidad de imagenes que vienen via post
       
if(sizeof($_FILES['fotosavisos']['name']) > 5){
   
        echo
'ha cargado mas de 5 fotos';
       
       
//paramos aca la ejecucion del script
       
exit();
         
//print_r($_FILES);
       
   
}else{
     
   
for($i=0;$i < 5;$i++){
       
       
if(!empty($_FILES['fotosavisos']['name'][$i])){
           
           
//$rutas = array('', '');    
            $rutas
= array(); // Inicializas con dos rutas vacías
           
           
//Subida de Archivos
           
foreach($_FILES['fotosavisos']['tmp_name'] as $key => $nombresTemporal){
               
               
//Si el array $_files NO VIENE VACIO...
               
if(!empty($_FILES['fotosavisos']['tmp_name'][$key])){
         
                   
//Nombre del Arreglo generado con el input fotosavisos
                    $nombres
=$_FILES['fotosavisos']['name'][$key];

                   
//Nombre Temporal de la Imagen (Generada por el servidor)
                    $nombresTemporal
=$_FILES['fotosavisos']['tmp_name'][$key];
                   
                   
//Tamaño de la Imagen
                    $tama
ño=$_FILES['fotosavisos']['size'][$key];
                   
                   
//Tipo de Imagen
                    $tipo
=$_FILES['fotosavisos']['type'][$key];
                   
                   
//Asignamos un Nombre Unico
                    $nombres
=uniqid(date('Ymd')).$nombres;
                   
                   
//Quitamos caracteres extraños del nombre de la imagen
                    $nombres
=preg_replace('#[^a-z.0-9,\s+]#i', '', $nombres);
                   
                   
//Obtenemos la extensión del archivo, apra pdoer validar que sean imagenes
                    $ext
= end(explode(".", $nombres));
               
                   
//Reducimos el nombre del archivo a 10 caracteres (sin contar la extension)          
                    $nombres
=substr($nombres, 0, 10);
               
                   
//Devolvemos la Extension, y generamos el nombre final de la imagen
                    $nombres
= $nombres . '.' . $ext;
               
                   
//Consultamos si la extension de archivos es permitida
                   
if (!preg_match("/.(jpg|jpeg|JPG)$/i", $nombres) ) {
                   
                   
//Muestro un mensaje de error si el formato no es valido    
                    echo
"ERROR: Solo Imagenes con formato: .jpg y .jpeg";
                   
                   
//Removemos el archivo de la carpeta temporal...
                    unlink
($nombresTemporal);
                   
                   
exit();
 
                   
}//if validacion extension  
                   
 
                   
//Ruta en Servidor
                    $rutaFinal
="../imagenes_avisos/".$nombres;
                    $rutaFinalSQL
="imagenes_avisos/".$nombres; //VALIDAR QUE ESTA RUTA EXISTA

                   
//Movemos los Archivos al Servidor
                    move_uploaded_file
($nombresTemporal,$rutaFinal);

                   
// Actualizas la ruta correspondiente para este archivo
                    $rutas
[$key] = $rutaFinalSQL;
                           
                   
//exit();
                   
                   
//print_r($rutaFinalSQL);
                   
                   
//exit();
                           
                           
}//if empty foreach
                               
                       
}//foreach
   
                   
}//if empty
                   
               
}//for  
           
   
}//else post
     
     
try{
         
if(!isset($rutas)){
             $rutas
=array();
           
}  
        $obj
->insertarAvisos($rutas);
       
//print_r($_POST);
       
//exit();
       
}catch(PDOException $e){
            echo $e
;
       
}
       
}// if post

?>
y la funcion propia del insert esta en funciones.php, que dicho sea de paso es donde estan los mensajes que tengo que mostrar en el index:
Introducir código aquí...function insertarAvisos($rutas = array('', '')){
         
/* echo '<pre>';
                print_r($rutas);
                echo '</pre>';*/


           
try{
               
               
//$titulo_aviso=filter_input(INPUT_POST,$titulo_aviso,FILTER_SANITIZE_MAGIC_QUOTES);
               
                $query  
="INSERT INTO avisos (titulo_aviso,categoria_aviso,tipo_aviso,comuna,aviso_completo,valor_producto,fecha_publicacion,nombre,telefono_celular,telefono_fijo,correo_electronico,direccion,img1,img2,img3,img4,img5)"; //,img1,img2,img3,img4,img5
                $query
.="VALUES(:titulo_aviso,:categoria_aviso,:tipo_aviso,:comuna,:aviso_completo,:valor_producto,:fecha_publicacion,:nombre,:telefono_celular,:telefono_fijo,:correo_electronico,:direccion,:img1,:img2,:img3,:img4,:img5)"; //,:rutas[0],:rutas[1],:rutas[2],:rutas[3],:rutas[4]
               
//Preparamos la consulta
                $stmt
= $this->con->prepare($query);
                $stmt
->bindParam(':titulo_aviso',$_POST['titulo_aviso'],PDO::PARAM_STR);
                $stmt
->bindParam(':categoria_aviso', $_POST['categoria_aviso'] ,PDO::PARAM_STR);
                $stmt
->bindParam(':tipo_aviso', $_POST['tipo_aviso'] ,PDO::PARAM_STR);
                $stmt
->bindParam(':comuna', $_POST['comuna'],PDO::PARAM_STR);
                $stmt
->bindParam(':aviso_completo', $_POST['aviso_completo'],PDO::PARAM_STR);
                $stmt
->bindParam(':valor_producto', $_POST['valor_producto']);
               
//Fecha de Publicacion
                $stmt
->bindParam(':fecha_publicacion',date('Y-m-d', time()),PDO::PARAM_STR);
                $stmt
->bindParam(':nombre', $_POST['nombre'] ,PDO::PARAM_STR);
                $stmt
->bindParam(':telefono_celular', $_POST['telefono_celular']);
                $stmt
->bindParam(':telefono_fijo', $_POST['telefono_fijo']);
                $stmt
->bindParam(':correo_electronico', $_POST['correo_electronico'] ,PDO::PARAM_STR);
                $stmt
->bindParam(':direccion', $_POST['direccion'] ,PDO::PARAM_STR);
                $stmt
->bindParam(':img1', $rutas[0]); //, $this->rutas[0]
                $stmt
->bindParam(':img2' ,$rutas[1]);
                $stmt
->bindParam(':img3' ,$rutas[2]);
                $stmt
->bindParam(':img4' ,$rutas[3]);
                $stmt
->bindParam(':img5' ,$rutas[4]);

               
//Ejecutamos la Consulta
                $stmt
->execute();
               
               
//Mensaje de Exito si el aviso se publico sin Problemas en la Base de Datos
                echo
"Su aviso ha Sido Publicado con Exito...Gracias por Utilizar nuestra Plataforma";
               
               
               
/*echo "<div class='alert alert-success alert-dismissable'>";
                echo "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button>";
                echo "Su aviso ha Sido Publicado con Exito...Gracias por Utilizar nuestra Plataforma";
                echo "</div>";*/


               
}catch(PDOException $e){
               
                echo $e
->errorInfo;
               
               
//Mensaje de Error si el aviso no se publico en la Base de Datos
                echo
"Su aviso no se ha podido Publicar...Por favor Intente mas Tarde";
               
               
               
/*echo "<div class=\"alert alert-danger alert-dismissable\">";
                echo "<button type=\"button\" class=\"close\" data-dismiss=\"danger\" aria-hidden=\"true\">&times;</button>";
                echo "Su aviso no se ha podido Publicar...Por favor Intente mas Tarde";
                echo "</div>";*/

               
}//catch
 
       
}//funcion InsertarAvisos

Gracias por su tiempo amigos


Reply all
Reply to author
Forward
0 new messages