fjrueda **. He probado el igualarlo a una varible y nada..
emprear **
- Corregido lo del atributo type para el tag select (a cualquiera se le escapa un pedete)
- El selected está bien definido.. es un integer recuperado de la bd que define en 0 si el usuario no valoró el articulo y se comprende entre 1 y 5 en caso de haber puntuado ya el articulo..
Nota.. Las etiquetas donde recibo la respuesta de ajax, no creí necesario postearlas..
Empezamos de 0 y coloco el código completo menos archivos .php y estilos de la tabla
Estoy trabajando en una tabla, donde recojo los articulo que un usuario de un servicio ha comprado.
Código HTML:
Ver original<table id="rounded-corner" summary="">
<th scope="col" class="rounded-company"></th> <th scope="col" class="rounded">Referencia
</th> <th scope="col" class="rounded">Estado
</th> <th scope="col" class="rounded">Fecha compra
</th> <th scope="col" class="rounded">Importe
</th> <th scope="col" class="rounded">Vendedor
</th> <th scope="col" class="rounded-q4">Puntuacion
</th>
<td colspan="6" class="rounded-foot-left"> <em> Agradeceriamos que valorases y comentases tu opinion de los articulos que has adquirido..
</em> <td class="rounded-foot-right"> </td>
<td><input type="checkbox" name="" readonly="readonly" "="" checked="checked" onclick="javascript: return false;"></td> <td><a href="#">Juan Talamera
</a></td> <td><select name="puntuacion" id="22" onchange="ValorarArticulo(this.value,22,3)">
Bien.. se trata de una tabla dinámica que genero con php obteniendo la información de una base de datos..
Por cada articulo comprado, genero 2 filas
<tr> en el body de la tabla, una general con la información y otra en blanco que tiene como agregado el numero del articulo al que nos refererimos(en este caso es el articulo
22 => tr
22), que me servirá para mostrar datos vía ajax en su interior (si fuese necesario)..
Dicho esto y ya entrando de lleno en javascript he creado los siguientes scripts.. (incluidos en el header)
Código Javascript
:
Ver originalfunction ValorarArticulo(puntuacion, articulo, consulta)
{
// puntuacion, es un numero dado por el select comprendido entre 0 y 5
// articulo, identificador del producto al que nos referimos, obtenido desde la bd
// consulta, valor integer que define un proceso a seguir dentro de un archivo php
var xmlhttp;
if(window.XMLHttpRequest)
{
// codigo soportado por IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
if(window.ActiveXObject)
{
// código soportado por IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("Tu navegador no soporta XMLHTTP!");
}
document.getElementById('tr'+articulo).innerHTML= '<img src="images/anim.gif">'; // lugar generado en la tabla donde mostrar la info
eliminarElemento('etiqueta_formulario'); // Eliminare esta etiqueta si la encuentra..
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.getElementById('tr'+articulo).innerHTML=xmlhttp.responseText; // lugar generado en la tabla donde mostrar la info
}
}
xmlhttp.open("GET","procesar_comentario.php?puntuacion="+puntuacion+"&accion="+consulta+"&articulo_id="+articulo,true);
xmlhttp.send(null);
}
function eliminarElemento(id)
{
div = document.getElementById(id);
if(div)
{
padre = div.parentNode;
padre.removeChild(div);
}
}
Ahora, al seleccionar un numero (el 3 por ejemplo), del select box de la tabla, en este caso el select box que hace referencia al articulo 22, debería de cargarme la información que le envió a la etiqueta <tr22>..
Donde por ejemplo me cargaría algo así como:
<tr22>
Código HTML:
Ver original<td colspan="7" id="etiqueta_formulario"> <div style="background:url(images/panel/notificaciones/responder.png) no-repeat 12px 8px; padding-left: 47px;"> <form name="respuestaComentario" action=""> // No pretendo extenderme en detalles.. este formulario lo proceso en ajax
<input type="hidden" name="articulo_id" value="22"> <input type="hidden" name="puntuacion" value="3"> <input type="hidden" name="accion" value="2">
</tr>
Como podeis ver, cada vez que hago una selección de algún número de cualquier selectbox, lo primero que hace es eliminar la etiqueta, si existe, 'etiqueta_formulario', y seguidamente, cargarme el nuevo contenido solicitado en el 'tr' correspondiente, una vez más y en este ejemplo, seria 'tr22'
El problema sigue siendo el mismo, en firefox, chrome, opera y safari funciona perfectamente.. en explorer directamente no hace nada de nada..
Este ejemplo en concreto forma parte de un panel de usuario que estoy desarrollando completamente en AJAX, y cuando intento ver la información de algún error de alguna etiqueta, en la consola de errores de ie no aprecio el origen, vamos, por lo pronto me define que si hay un error, en la linea 'tal' pero no se aprecia donde, solo el código fuente original sin los contenidos cargados atreves de ajax en las etiquetas..
Gracias de nuevo muchachos!!