Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Obtener HTML con AJAX

Estas en el tema de Obtener HTML con AJAX en el foro de Frameworks JS en Foros del Web. Hola amigos. Tengo almacenada en una tabla de productos las características del producto. Las características estan en HTML formando una tabla y la idea es ...
  #1 (permalink)  
Antiguo 24/11/2006, 08:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Paraguay
Mensajes: 382
Antigüedad: 21 años
Puntos: 4
Mensaje Obtener HTML con AJAX

Hola amigos.

Tengo almacenada en una tabla de productos las características del producto. Las características estan en HTML formando una tabla y la idea es traer esa información con AJAX y escribir la tabla pero parece no traer la información por los caracteres especiales empezando ya con el < de <table>.

Se puede hacer algo para que el AJAX me permita obtener todos los caracteres?

La pagina en donde esta la funcion AJAX se comunica a otra con PHP para esto.
  #2 (permalink)  
Antiguo 25/11/2006, 03:51
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 19 años
Puntos: 7
para empezar podrías crear las tablas y demás en la página php, luego dentro de cada tabla(donde quieras traer la info desde la bd) pones una llamada a la bd, así te evitas tener que estar poniendo códigos html dentro de la bd.
No creo que AJAX te sirva de mucho en este caso, puesto que no es una tecnología para hacer consultas a una bd, sinó que es para llamar asincronicamente páginas e incrustarlas dentro de otra.
Igual por si no me explico muy bien, me gustaría que pongas tú código así en base a eso te puedo dar una ayuda.
Saludos!
__________________
I'm gonna start a revolution from my bed...
  #3 (permalink)  
Antiguo 26/11/2006, 01:29
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 10 meses
Puntos: 3
Cita:
Iniciado por pablinff Ver Mensaje
No creo que AJAX te sirva de mucho en este caso, puesto que no es una tecnología para hacer consultas a una bd, sinó que es para llamar asincronicamente páginas e incrustarlas dentro de otra.
Igual por si no me explico muy bien, me gustaría que pongas tú código así en base a eso te puedo dar una ayuda.
Saludos!
No lo confundas ....con AJAX es perfectamente posible consultar tu BD "on the fly"... de hecho yo he validado usuarios "sin refrescar"... y ps logico uso consultas SQL...
Y otro punto...AJAX no es una tecnologia.. como muchos dicen...simplemente es una tecnica.. ya que no es un lenguaje o algo similar...si no, una union de lenguajes..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 26/11/2006, 02:10
 
Fecha de Ingreso: noviembre-2006
Ubicación: Argentina - Entre Rios
Mensajes: 15
Antigüedad: 18 años
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.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:38.