Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/11/2006, 02:10
Core2Quadro
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 17 años, 5 meses
Puntos: 0
Puedes hacerlo con AJAX de muchas formas, pero no te conviene guardar la tabla con los caracteres especiales todo en la base de datos.

Con respecto a los caracteres especiales te conviene armar una funcion que te reemplace los caracteres especiales de los acentos y demas por los que corresponden en formato html, pero en el momento entre el submit del formulario y la consulta SQL.

Para cargar en tu pagina la tabla te conviene hacerte un script PHP que haga exclusivamente el procesamiento de la tabla, segun parametros, y consultarlo con AJAX desde la pagina que quieras incluirlo.

Puedes incluir la tabla directamente en la primera consulta del cliente y hacer que se refresque con AJAX, o hacer la consulta con AJAX al momento de levantar la pagina con <body onload="funcionJavascript()">

ej:

Código HTML:
<html>

   <head>
     <title>Pagina Muestra Tabla</title>
     <script languaje="javascript" type="text/javascript" src="ajax_base.js">
     </script>
     <script languaje="javascript" type="text/javascript" src="tabla_ajax.js">
     </script>
   </head>

   <body onLoad="refrescarTabla()">

      <h1>Super Tabla AJAX</h1>

      <div id="tabla">
      </div>

      <input type="button" value="Refrescar Tabla" onClick="refrescarTabla()"/>

   </body>

</html> 

Para armar el obj. AJAX (seguro ya lo tenes pero...)

Código HTML:
/** ajax_base.js **/
function createAjax()
{
	var obj = false;
	
	if(window.XMLHttpRequest)
	{
		try 
		{
			//Mozilla - Firefox, etc
			obj = new XMLHttpRequest();
		}
		catch (e)
		{
			request = false;
		}		
	}
	else if (window.ActiveXObject)
	{
		try
		{
			obj = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				obj = new ActiveXObject("Microsoft.XMLHTTP");				
			}
			catch (e)
			{
				obj = false;
			}				
		}		
	}
	if (obj)
	{
		return obj;
	}
	else
	{
		return null;
	}
}

Para refrescar la tabla:



Código HTML:
/** tabla_ajax.js **/

var request = createAjax();

function refrescarTabla()
	{
		var method = 'post';

		var url = 'localajax.php?accion=dameLaTabla&cantidad=10'
		request.open(method,url);
		
		request.onreadystatechange = llenarTabla;
		request.send(null);
	}

function llenarTabla()
	{
		var div = document.getElementById('tabla');
				
		if (request.readyState == 4)
		{			
			div.innerHTML = request.responseText;	
		}	
	}


En la url del request.open aparece localajax.php que es el que se tiene que encargar de armar tu tabla.

Código PHP:


<?
if ((isset($_REQUEST['accion']))&&($_REQUEST['accion'] == "dameLaTabla"))
{
     
$cantidad 5//cantidad de registros de la tabla como maximo;

     
if ($isset($_REQUEST['cantidad'])
     {
          
$cantidad $_REQUEST['cantidad'];
     }

     
$query "SELECT * FROM tabla WHERE lo que quieras LIMIT ".$cantidad;

     
//todo tu codigo de consulta a base de datos

//se empieza a armar la tabla:

?>
<table>
<?
     
     $par 
="even";
    
     while (
$fila mysql_fetch_array($result))
     {
       
?>
   <tr>
       <td><?=$fila['superprimercampo']; ?></td><td><?= $fila['otrocampo']; ?> </td>
   </tr>
<?
     
}
?>
</table>
<?


}

?>

Supuestamente entonces este php responde a tu peticion a traves del objeto AJAX llamado "request", y cuando request.onreadystatechange la funcion llenarTabla se encarga del resto.