He hecho algo así, es un poco complejo así que lo explico un poco al principio: Tengo una lista de comentarios, esta lista también es un formulario, entonces al hacer clic en un comentario se activa una funcion que muestra un div que estaba oculto y hace submit al formulario. El action del formulario le lleva a una funcion jquery ajax que envia el form a otro php llamado 'mostrar.php', pero al parecer no le llegan los datos por post
Código PHP:
Aquí coloco las funciones javascript y jquery:
<script type="text/javascript">
/* Esta primera funcion la ejecuto al hacer clic en un comentario, entonces hago aparecer un div que estaba oculto y activo el formulario el cual le lleva a la funcion de abajo */
function mostrarcomentario(Id) {
if ((document.getElementById("book").style.display) == 'block') {
document.getElementById("book").style.display = 'none';
}else{
document.getElementById("book").style.display = 'block';
}
document.formcomentario.submit();
}
/* esta funcion hace que se envie el formulario por jquery ajax de forma que no haga falta recargar la página, que es lo que necesito /*
function enviar(){
var idcomentario = $("idcomentario").val();
$.ajax({
url: 'mostrar.php',
data:'idcomentario='+ idcomentario,
type: 'post',
error: function(obj, idcomentario, obj2){
alert(idcomentario);
},
success: function(data){
loadComent();
}
});
};
</script>
/* Esto es donde muestro un listado de comentarios, al hacer clic en uno hago que se muestre un div que está oculto con la funcion "mostrarcomentario();" y al mostrarse trato de hacer que se envie el formulario */
<div id="wall">
<?php
$query = mysql_query("SELECT * FROM comentarios WHERE idperfil= '".mysql_real_escape_string($idperfil)."' ORDER BY fecha DESC");
if($query == true){
?>
<form action="javascript: enviar();" name="formcomentario" method="post">
<?php
while ($row = mysql_fetch_array($query)){
$english=$row["fecha"];
$fecha=strftime(' %d de %B de %Y a las(la) %H:%M',strtotime($english))
?>
<table id="entradas" onclick="mostrarcomentario();" >
<tr>
<td style='display:none;'><input type="hidden" name="respuestade" value="<?php echo $idsesion ?>" /></td>
<td style='display:none;'><input type="hidden" name="idcomentario" value="<?php echo $row['id']?>" /></td>
<td class="comentario"><?php echo $row['mensaje'] ?></td>
</tr><tr>
<td class="data"><br/><?php echo $fecha?></td>
</tr>
<?php
}
} ?></table></form></div>
Espero que no se hayan perdido, y el error que me sale es que el archivo 'mostrar.php' no ha recibido la variable $_POST["idcomentario"], es decir que no está enviando el formulario. Ojalá podais ayudarme, he estado trabajando mucho en este script y no sé por qué falla, muchas gracias por adelantado!!