Actualizo:
He realizado este código pero no me funciona...
Código Javascript
:
Ver original<script>
//Función para recoger los datos del formulario y enviarlos por post
function enviarComentario(){
//div donde se mostrará lo resultados
divResultado = document.getElementById('comments');
//recogemos los valores de los inputs
text=document.formulario_registro.text.value;
var id = "<?php echo $_GET['id']; ?>" ;
var usu = "<?php echo $_SESSION['userid']; ?>" ;
var nombre = "<?php echo $_SESSION['name']; ?>" ;
//instanciamos el objetoAjax
$.ajax({
method: "POST",
url: "inscom.php",
data: { id: id, login:usu, nombre:nombre , text:text },
dataType: "html"
})
.done(function( msg ) {
$("#comments").html(msg);
LimpiarCampos();
});
//función para limpiar los campos
function LimpiarCampos(){
document.formulario_registro.text.value="";
document.formulario_registro.text.focus();
}
</script>
El contenido de inscom.php es el siguiente:
Código PHP:
Ver original<?php
$id=$_POST['id'];
$usu=$_POST['login'];
$nombre=$_POST['nombre'];
$text=$_POST['text'];
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
$base= new PDO('mysql:host=localhost; dbname=pelipedia','root','');
$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$base->exec("SET CHARACTER SET utf8");
$sql="INSERT INTO comentarios (idusu, idpag, nombreusu, coment) VALUES (:idusu,:id,:nom,:coment)";
$resultado=$base->prepare($sql);
$resultado->execute(array(":idusu"=>$usu,":id"=>$id,":nom"=>$nombre,":coment"=>$text));
$resultado->closeCursor(); //Cierra cursor
}catch(Exception $e){
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
}finally{ //Tanto si tiene un error como si no ejecuta esto
$base=null; //Vaciamos la memoria
}
include('consulta.php');
?>
Y el de consulta.php ...
Código PHP:
Ver original<?php
try{
$base= new PDO('mysql:host=localhost; dbname=pelipedia','root','');
$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$base->exec("SET CHARACTER SET utf8"); $sql="SELECT * FROM comentarios WHERE idpag = :id"; // :n_art Marcador
$resultado=$base->prepare($sql);
$resultado->execute(array(":id"=>$id));
while($registro=$resultado->fetch(PDO::FETCH_ASSOC)){
echo "<div id='comtot'> ";
echo "<p><strong>" . $registro['nombreusu'] . " dice: </strong></p><br>";
echo "<p>" . $registro['coment'] . "";
echo "</div>";
}
$resultado->closeCursor(); //Cierra cursor
}catch(Exception $e){
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
}finally{ //Tanto si tiene un error como si no ejecuta esto
$base=null; //Vaciamos la memoria
}
?>
Con el código obsoleto me funcionaba bien.