Foros del Web » Programando para Internet » Javascript »

Enviar comentario y mostrarlo en la misma pagina

Estas en el tema de Enviar comentario y mostrarlo en la misma pagina en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/12/2014, 13:30
 
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 53
Antigüedad: 11 años, 11 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);
    
}
?>
  #2 (permalink)  
Antiguo 13/12/2014, 13:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar comentario y mostrarlo en la misma pagina

Hola:

A simple vista estás intentando escribir la respuesta Ajax (responseText), pero no he visto ninguna instrucción php "echo" con el resultado de la inserción...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: ajax, comentario, formulario, funcion, input, php, select, valor
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 03:05.