PDA

Ver la Versión Completa : Ajax + insetando filas en tabla


halizia
07-09-2007, 10:03:26
hola a todos!

quisiera hacer que se me vaya refrescando una tabla en Ajax, pero que me vaya insertando filas. Hasta ahora lo que hago es actualizar una celda, pero lo que quisiera es que esa tabla fuese insertando filas, hasta llegar a un límite.

¿Se puede hacer esto en AJAX?

Adjunto el código:


<?php
require ('../xajax_core/xajax.inc.php');

$xajax = new xajax();

function vcc($isCaps,$res){
if (($isCaps%2)==0){
$text='<td width="70">'.$isCaps.'</td>';
}else{
$text='<td width="70">LINEAL</td>';
}
$res=$res.$text;
$objResponse = new xajaxResponse();
$objResponse->assign("vcc","innerHTML",$res);

return $objResponse;
}

function pcc($isCaps,$res){

if (($isCaps%2)==0){
$algo='<td width="70">LINEAL</td>';
}else{
$algo='<td width="70">lineal</td>';
}
$res=$res.$algo;
$objResponse = new xajaxResponse();
$objResponse->assign("pcc","innerHTML",$res);

return $objResponse;
}

$xajax->registerFunction("vcc");
$xajax->registerFunction("pcc");
$xajax->processRequest();

echo '<?xml version="1.0" encoding="UTF-8"?>';

$xajax->printJavascript('../');
?>
<script type='text/javascript'>
/* <![CDATA[ */
var texto;
window.onload = function() {
// call the helloWorld function to populate the div on load
xajax_vcc(0,'');
xajax_pcc(0,'');
}
var i=0;
var j=0;

//i=i+1;
setInterval("xajax_vcc(i++,texto)",1000);
setInterval("xajax_pcc(j++,texto)",1000);
/* ]]> */
</script>

<table border='1'><tr><td>PCC</td><td>VCC</td></tr><tr><td width="70"><div id="pcc" name="pcc"><? echo "pcc"?></div></td>
<td width="70"><div id="vcc" name="vcc"><? echo "vcc"?></div></td>
</tr></table>
<br/>


Saludos!!

dec
07-09-2007, 12:04:36
Hola,

No es tanto "AJAX" sino JavaScript, creo yo, vamos. Pero sí, pueden añadirse filas a una tabla, y creo que hay varias formas de conseguirlo... yo propongo una que puede que no sea la mejor, pero, en fin, allá va:


<html>
<head>
<script type="text/javascript">
function AppendRow(idTable,htmlContent){
var t = document.getElementById(idTable);
if(t){
var r = document.createElement('tr');
var c = document.createElement('td');
c.innerHTML = htmlContent;
r.appendChild(c);
t.appendChild(r);
}
return true;
}
</script>
</head>
<body>
<table id="mytable"></table>
<a href="#" onclick="AppendRow('mytable','<h1>HTML Content</h1>');">AppendRow</a>
</body>
</html>


* El código es HTML y JavaScript, lo encierro entre etiquetas PHP para que se resalte mejor únicamente.

Emilio
07-09-2007, 13:45:34
No es tanto "AJAX" sino JavaScript, creo yo, vamos.

Dec, lo que pretende halizia es que le vaya refrescando los datos, por tanto con javascript poco vamos a lograr, en este caso sí hay que tirar de Ajax para lograrlo.

Yo puse un ejemplito sencillo, creo que anda por el foro :confused:

Si no, pues ya lo ponemos de nuevo.

dec
07-09-2007, 13:49:09
Hola,

Bueno. No me expliqué bien. Yo asumía que halizia ya recoge la respuesta que le llega a través del objeto "XmlHttpRequest" (AJAX), y lo que necesitaba no era tanto ayuda en este sentido, sino en cómo insertar celdas a una tabla HTML (cosa que puede hacer en el momento en que recibe la respuesta susomentada, por ejemplo).

Pero, vamos, en todo caso no creo que venga mal un ejemplo... aunque la compañera tenga que adaptarlo a su uso, pues me parece que utiliza alguna librería para tratar con el objeto "XmlHttpRequest". Lo que no sé es dónde puede andar dicho ejemplo... :)