Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/03/2016, 13:22
Keysersozer
 
Fecha de Ingreso: febrero-2016
Mensajes: 17
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Modernizar código AJAX

Actualizo:

He realizado este código pero no me funciona...

Código Javascript:
Ver original
  1. <script>
  2.  
  3. //Función para recoger los datos del formulario y enviarlos por post  
  4. function enviarComentario(){
  5.  
  6.   //div donde se mostrará lo resultados
  7.   divResultado = document.getElementById('comments');
  8.   //recogemos los valores de los inputs
  9.   text=document.formulario_registro.text.value;
  10.   var id = "<?php echo $_GET['id']; ?>" ;
  11.   var usu = "<?php echo $_SESSION['userid']; ?>" ;
  12.   var nombre = "<?php echo $_SESSION['name']; ?>" ;
  13.  
  14.   //instanciamos el objetoAjax
  15.  
  16.  $.ajax({
  17.   method: "POST",
  18.   url: "inscom.php",
  19.   data: { id: id, login:usu, nombre:nombre , text:text },
  20.   dataType: "html"
  21. })
  22.   .done(function( msg ) {
  23.     $("#comments").html(msg);
  24.     LimpiarCampos();
  25.   });
  26.  
  27.  
  28.  
  29. //función para limpiar los campos
  30. function LimpiarCampos(){
  31.   document.formulario_registro.text.value="";
  32.   document.formulario_registro.text.focus();
  33. }
  34.  
  35. </script>

El contenido de inscom.php es el siguiente:

Código PHP:
Ver original
  1. <?php
  2.    
  3.   $id=$_POST['id'];
  4.   $usu=$_POST['login'];
  5.   $nombre=$_POST['nombre'];
  6.   $text=$_POST['text'];
  7.  
  8.    
  9.    try{ //Intenta conectar con la base de datos y si no lo consigues captura el objeto del error (catch) y haz lo que yo te diga
  10.    
  11.     $base= new PDO('mysql:host=localhost; dbname=pelipedia','root','');
  12.    
  13.     $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  14.    
  15.     $base->exec("SET CHARACTER SET utf8");
  16.    
  17.     $sql="INSERT INTO comentarios (idusu, idpag, nombreusu, coment) VALUES (:idusu,:id,:nom,:coment)";
  18.    
  19.     $resultado=$base->prepare($sql);
  20.    
  21.     $resultado->execute(array(":idusu"=>$usu,":id"=>$id,":nom"=>$nombre,":coment"=>$text));
  22.    
  23.     $resultado->closeCursor(); //Cierra cursor
  24.    
  25.     }catch(Exception $e){
  26.        
  27.         die("Error: " . $e->getMessage() . "<br>Código del error: " . $e->getCode() . "<br>Línea: " . $e->getLine()); //Matar proceso y sacar este mensaje (mensaje del objeto error
  28.        
  29.     }finally{ //Tanto si tiene un error como si no ejecuta esto
  30.        
  31.         $base=null; //Vaciamos la memoria  
  32.     }
  33.    
  34. include('consulta.php');
  35.  
  36. ?>

Y el de consulta.php ...

Código PHP:
Ver original
  1. <?php
  2.    
  3.      try{
  4.    
  5.         $base= new PDO('mysql:host=localhost; dbname=pelipedia','root','');
  6.     $base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  7.     $base->exec("SET CHARACTER SET utf8");
  8.     $sql="SELECT * FROM comentarios WHERE idpag = :id"; // :n_art Marcador
  9.     $resultado=$base->prepare($sql);
  10.     $resultado->execute(array(":id"=>$id));
  11.  
  12.     while($registro=$resultado->fetch(PDO::FETCH_ASSOC)){
  13.         echo "<div id='comtot'> ";
  14.     echo "<p><strong>" . $registro['nombreusu'] . " dice: </strong></p><br>";
  15.     echo "<p>" . $registro['coment'] . "";
  16.     echo "</div>";
  17.     }
  18.    
  19.     $resultado->closeCursor(); //Cierra cursor
  20.    
  21.     }catch(Exception $e){
  22.        
  23.         die("Error: " . $e->getMessage() . "<br>Código del error: " . $e->getCode() . "<br>Línea: " . $e->getLine()); //Matar proceso y sacar este mensaje (mensaje del objeto error
  24.        
  25.     }finally{ //Tanto si tiene un error como si no ejecuta esto
  26.        
  27.         $base=null; //Vaciamos la memoria
  28.        
  29.     }
  30. ?>

Con el código obsoleto me funcionaba bien.