Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/12/2014, 13:30
mariomb19
 
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 53
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Enviar comentario y mostrarlo en la misma pagina

Buenas tengo este código, guarda bien en la base de datos y cuando le doy f5 se ve el comentario el problema que tengo es cuando comento no aparece el comentario en la parte inferior, al momento de comentar sin recargar la pagina, que error tendré???

Muchas gracias

Código HTML:
<!-- Contact form -->
    <form class="contact-form" name="nuevo_empleado" id="nuevo_empleado" action="" onsubmit="enviarDatosComentario(); return false">
    
    	<input type="hidden" name="id_publicacion" id="id_publicacion" value="<?php echo $_POST['id_publicacion_p1']; ?>" />
        
        <input type="hidden" name="id_user_publicacion" id="id_user_publicacion" value="<?php echo $_POST['id_user_p1']; ?>" />
        
        <input type="hidden" name="id_user_respuesta" id="id_user_respuesta" value="<?php echo $_SESSION["id_user"]; ?>" />
    
    	<textarea  name="comentario" id="comentario" class="your-label-contact-text" placeholder="Escribe tu pregunta..."></textarea>
        
    	<p>Prohibido ingresar datos de contacto, y no uses un lenguaje vulgar.</p>
        
    	<button type="submit" name="submit" id="submit" class="button-green upp">Preguntar</button> 
    </form>
    <!-- and Contact form -->	
    
   <div id="resultado">
    
	<?php
        
        $sql="SELECT `id_comentario_c`, `id_publicacion_c`, `user_pregunta_c`, `user_respuesta_c`, `comentario_c`, `fecha_comentario` 
        FROM `comentarios` 
        WHERE `id_publicacion_c`='$_POST[id_publicacion_p1]'" or die .mysqli_error();
        $result= ejecuta($con,$sql);
        
        $cantidad_filas= cantidadFilas($result);
                                                    
        if($cantidad_filas==0){
    
    ?>		
            <p>
                <hr>
                    <div class="alert alert-danger" role="alert">
                        <i class="fa fa-frown-o"></i>
                        No hay preguntas realizadas en esta publicación
                    </div>
                <hr>
            </p>  
    
    <?php													
        }
        else{
                                            
            while (list($_POST['id_comentario_c'], $_POST['id_publicacion_c'], $_POST['user_pregunta_c'], $_POST['user_respuesta_c'], $_POST['comentario_c'], $_POST['fecha_comentario'])= obtenerMyNum($result)){
    ?>
                                            
            <p>
                <hr>
                    <p> <strong> <i class="fa fa-comment"></i> <?php echo utf8_encode($_POST['comentario_c']); ?></strong></p>
                <hr>
            </p>  
        
    <?php
    
            }
        }
	?>	
    
	</div> 
ajunto el ajax

Código PHP:
// JavaScript Document
 
// Función para recoger los datos de PHP según el navegador, se usa siempre.
function objetoAjax(){
    var 
xmlhttp=false;
    try {
        
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (
e) {
 
    try {
        
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (
E) {
        
xmlhttp false;
    }
}
 
if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
      
xmlhttp = new XMLHttpRequest();
    }
    return 
xmlhttp;
}
 
//Función para recoger los datos del formulario y enviarlos por post  
function enviarDatosComentario(){
 
  
//div donde se mostrará lo resultados
  
divResultado document.getElementById('resultado');
  
  
//recogemos los valores de los inputs
  
idp=document.nuevo_empleado.id_publicacion.value;
  
idpre=document.nuevo_empleado.id_user_publicacion.value;
  
idres=document.nuevo_empleado.id_user_respuesta.value;
  
com=document.nuevo_empleado.comentario.value;
 
  
//instanciamos el objetoAjax
  
ajax=objetoAjax();
 
  
//uso del medotod POST
  //archivo que realizará la operacion
  //registro.php
  
ajax.open("POST""php/registroComentario.php",true);
  
//cuando el objeto XMLHttpRequest cambia de estado, la función se inicia
  
ajax.onreadystatechange=function() {
      
//la función responseText tiene todos los datos pedidos al servidor
      
if (ajax.readyState==4) {
          
//mostrar resultados en esta capa
        
divResultado.innerHTML ajax.responseText
          
//llamar a funcion para limpiar los inputs
        
LimpiarCampos();
    }
 }
    
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
//enviando los valores a registro.php para que inserte los datos
    
ajax.send("id_publicacion="+idp+"&id_user_publicacion="+idpre+"&id_user_respuesta="+idres+"&comentario="+com)
}
 
//función para limpiar los campos
function LimpiarCampos(){
  
document.nuevo_empleado.id_publicacion.value="";
  
document.nuevo_empleado.id_user_publicacion.value="";
  
document.nuevo_empleado.id_user_respuesta.value="";
  
document.nuevo_empleado.comentario.value="";
  
document.nuevo_empleado.id_publicacion.focus();

ajunto el registro en la base de datos

Código PHP:
<?php
if(isset($_POST['comentario'])){
    
//Start connection database
    
require_once "conexion_sql.php";
    
$con=conectar();
    
        
$comentarioutf8_decode($_POST['comentario']);
        
$id_user_publicacion$_POST['id_user_publicacion'];
        
$id_user_pregunta$_POST['id_user_respuesta'];
        
$id_publicacion$_POST['id_publicacion'];
        
        
// Establesco la zona horaria
        
date_default_timezone_set('America/Caracas');
        
$fecha_comentariodate('Y-m-d');
     
        
$sql="INSERT INTO `comentarios`(`id_publicacion_c`, `user_pregunta_c`, `user_respuesta_c`, `comentario_c`, `fecha_comentario`) 
        VALUES ('$id_publicacion','$id_user_pregunta','$id_user_publicacion','$comentario','$fecha_comentario')" 
or die .mysqli_error();
        
$resultejecuta($con,$sql);
    
    
//Cierro conexion bases de datos
    
$cerrar=cerrar($con);
    
}
?>