Tengo un problemita apenas empece a implementar XAJAX en lo que es el rediseño de mi sitio y ocupo la recion mas nueva xajax 0.5 y todo funciona en FF y tmb en Safari En IE se ejecuta mi peticion php pero n actualiza mi DIV utilizando innerhtml dejo mis codigos
Explicacion:
para crear la plantilla de comentarios mando a imprimir todo ya que todas las funciones tienen return despues al hacer onclick se ejecuta e inserta el comentario hasta aqui todo bien en los navegadores IE, FF, SAFARI despues actualiza el div "hidd" ya con el comentario insertado pero esto no sucede en IE realiza la consulta y agrega el comentario pero no actuliza el div alguien podria explicarme por que?¿ y alguna alternativa?¿
en funcionamiento http://www.spoot.com.mx/beta/?id=links&show=53szvsayqh
FUNCION QUE ESTA REGISTRADA EN XAJAX Y QUE LLAMA A LAS DEMAS FUNCIONES
Código PHP:
function insertComment($data){
$vars = varsIndeed();
$time=(date(YmdHis));
$dates=date(Ymd);
//sentencias
$query= "INSERT INTO {$vars[1]} (id, user_name, email, text, date, time) VALUES ('$vars[0]', '$data[user_name_c1]', '$data[emailField]', '$data[text]', '$dates', '$time')";
$result = mysql_query($query);
$newContent.= createRecordset();
$newContent.="Comentario Añadido ¿Otro?";
$newContent.= setCommentForm();
setcookie("comentarios[1]","$data[user_name_c1]", time() + 60*60*24*90);
setcookie("comentarios[2]","$data[emailField]", time() + 60*60*24*90);
$objResponse = new xajaxResponse();
$objResponse->assign("hidd","innerHTML", $newContent);
return $objResponse;
}
FUNCION QUE REALIZA Y REALIZARIA DE NUEVO EL CONTENIDO DEL DIV Y QUE AL SER INSERTADO UN NUEVO COMENTARIO APERECERIA AHI.
Código PHP:
function createRecordset(){
$vars = varsIndeed();
$query="SELECT * FROM $vars[1] WHERE id='$vars[0]' ORDER BY time DESC";
$recordset=mysql_query($query);
$totalRecords =mysql_num_rows($recordset);
$x=1;
if($totalRecords >= 1) {
$html.="<h2>Comentarios</h2>
<ol id='comments'>";
while ($rowSelected = mysql_fetch_assoc($recordset)){
if($x==6){
}
if($x%2==0)
$class="liPar";
else
$class="liImpar";
$html.="<li class='$class'>
<a name='usrcomment{$x}' id='usrcomment{$x}'></a>
<p>";
$mesaggin=ucfirst(strtolower(bb2html($rowSelected['text'])));
$html.="{$mesaggin}</p>
<p class='userComment'>".ucwords($rowSelected['user_name']);
$fechaGenerada = generaFecha("%d, %B %y",$rowSelected['date']);
$nexOne= $x+1;
$html.= "<span class='fechaPost'>{$fechaGenerada}</span>
<a href='#usrcomment{$nexOne}' title='Siguiente Comentario'>#</a>
</p>
</li>";
if($x>=6 && $x==$totalRecords){
}
$x++;
}
$html.= "</ol>";
mysql_free_result($recordset);
}
return $html;
}
Con este Creo el formulario
Código PHP:
function setCommentForm(){
if(isset($_COOKIE[comentarios])){
$name_c1=$_COOKIE[comentarios][1];
$mail=$_COOKIE[comentarios][2];
}
$html.="<form id='comments_form'>
<a name='comments' id='comments'></a>
<h1>Deja Un Comentario</h1>
<br/>
<label>Tu Nombre:</label>
<span id='usrName'>
<input name='user_name_c1' type='text' class='inputbox' tabindex='1' value='{$name_c1}' size='30' maxlength='15'/>
<span class='textfieldRequiredMsg'>Escribe tu nombre.</span></span>
<br/>
<label>Tu Correo:</label>
<span id='usrMail'>
<input name='emailField' type='text' class='inputbox' id='emailField' tabindex='2' value='{$mail}' size='30'/>
<span class='textfieldRequiredMsg'>Escribe tu correo.</span><span class='textfieldInvalidFormatMsg'>Correo no valido.</span></span>
<br/>
<label>Comentario:</label>
<span id='commentsUsr'>
<textarea name='text' cols='30' rows='7' class='inputbox' id='text' tabindex='3'></textarea>
<span class='textareaRequiredMsg'>Campo vacio.</span></span>
<br/>
<label> </label>";
$prm='"comments_form"';
$html.="<input name='commnetSend' type='button' class='buttones' id='commnetSend' value='Envia' onclick='xajax_insertComment(xajax.getFormValues({$prm}))'/>
<input name='button3' type='reset' class='buttones' id='button3' value='Limpiar' />
</form>
<script type='text/javascript'>
<!--
var usrName = new Spry.Widget.ValidationTextField('usrName', 'none', {validateOn:['blur', 'change']});
var usrMail = new Spry.Widget.ValidationTextField('usrMail', 'email', {validateOn:['blur', 'change']});
var commentsUsr = new Spry.Widget.ValidationTextarea('commentsUsr', {validateOn:['blur', 'change']});
//-->
</script>";
return $html;
}
Explicacion:
para crear la plantilla de comentarios mando a imprimir todo ya que todas las funciones tienen return despues al hacer onclick se ejecuta e inserta el comentario hasta aqui todo bien en los navegadores IE, FF, SAFARI despues actualiza el div "hidd" ya con el comentario insertado pero esto no sucede en IE realiza la consulta y agrega el comentario pero no actuliza el div alguien podria explicarme por que?¿ y alguna alternativa?¿
Saludos gracias