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

AJAX y TAG A

Estas en el tema de AJAX y TAG A en el foro de Frameworks JS en Foros del Web. Hola: Estuve siguiendo un tutorial de ajax en w3schools que está muy bueno... pero justo el caso que estoy necesitando me falta un chiquitin como ...
  #1 (permalink)  
Antiguo 29/05/2008, 11:19
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 10 meses
Puntos: 0
AJAX y TAG A

Hola:
Estuve siguiendo un tutorial de ajax en w3schools que está muy bueno... pero justo el caso que estoy necesitando me falta un chiquitin como para terminar de definirlo. A ver si alguno me puede ayudar!

Les cuento el caso. Tengo un php que con un query muestra datos en formato html. Ahora quiero que uno de esos datos sea una especie de link que si presiono sobre él, me deje todo tal cual la pagina y me muestre una consulta con mayor detalle sobre ese registro en particular.

El php que muestra la info sera:
<?php
$pais = $_GET["pais"];
$tabla = $_GET["tabla"];

$sql="SELECT operador, n_corto, sum(cantidad) AS total FROM $tabla WHERE pais = '".$pais."'";

$result = mysql_query($sql);

echo "<table border='1'>
<tr>
<th>Operador</th>
<th>Nro.Corto</th>
<th>Total</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['operador'] . "</td>";
echo "<td>" . $row['n_corto'] . "</td>";
echo "<td>" . $row['total'] . "</td>";
echo "</tr>";
}
echo "</table>";

?>

El javascript:
var xmlHttp

function showPais(str,nombre_tabla)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
var url="getpais.php"
url=url+"?pais="+str
url=url+"&tabla="+nombre_tabla
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHt tp.responseText
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

y aca es donde tengo mi duda... el php que contiene el html que se va a mostrar en formato de link para que al seleccionarlo invoque a ShowPais... seria:

<?php echo '<td align=center>'. '<a href="showPais(this.value)">' . nombre_pais($pais) . '</a>' .'</td>';?>

Pero no me funciona... evidentemente no se resuelve con el href la llamada a showPais... como se les ocurre puede ser? De donde puedo leer un ej. del estilo?

Muchas gracias
  #2 (permalink)  
Antiguo 30/05/2008, 06:03
 
Fecha de Ingreso: febrero-2007
Mensajes: 74
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: AJAX y TAG A

Cita:
<?php echo '<td align=center>'. '<a href="javascript:showPais(this.value)">' . nombre_pais($pais) . '</a>' .'</td>';?>
Era una tontería pero lo creas o no, por eso no funcionaba xDDD.

Saludos.
  #3 (permalink)  
Antiguo 30/05/2008, 12:10
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: AJAX y TAG A

Gracias! Ya al menos pude hacer funcionar el llamado al script, me queda algun detallecito pero ya lo mas importante me ayudaste!

Saludos.
Edith
  #4 (permalink)  
Antiguo 30/05/2008, 13:29
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: AJAX y TAG A

Ahora me trabe con otra cosita... a ver si me ayudan tan facil como la vez anterior!
logro correctamente hacer el link y que el usuario navegue y ejecute showPais, que se encuentra en selectPais.js.
El tema es que me da el siguiente error:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in ...
es justo en la sentencia:
$result = mysql_query($sql,$conexion_tmp);
el query lo imprimo y es correcto... creo que el tema esta dado por el link a la conexion que viene desde el archivo php general que lo invoca...
la intenté poner como variable global en getpais.php:
<?php
$pais = $_GET["pais"];
$tabla = $_GET["tabla"];

global $conexion_tmp;

$sql="SELECT operador, n_corto, sum(cantidad) AS total FROM $tabla WHERE pais = '".$pais."'";

echo $sql;

$result = mysql_query($sql,$conexion_tmp);
echo "error: ". mysql_errno() ."-". mysql_error();

echo "<table border='1'>
<tr>
<th>Operador</th>
<th>Nro.Corto</th>
<th>Total</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['operador'] . "</td>";
echo "<td>" . $row['n_corto'] . "</td>";
echo "<td>" . $row['total'] . "</td>";
echo "</tr>";
}
echo "</table>";

//mysql_close($con);
?>

Tambien intenté mandarla por parametro... pero sin exito.
Alguno podra darme una mano? Si hay algo que no se entiende lo explico mejor... gracias!

Edith
  #5 (permalink)  
Antiguo 30/05/2008, 15:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: AJAX y TAG A

Hola etej

¿De donde obtienes $conexion_tmp? Recuerda que una petición AJAX es una petición nueva por lo que aunque en tu archivo principal te conectes, debes de reconectarte desde tu script AJAX.

saludos.
  #6 (permalink)  
Antiguo 31/05/2008, 12:57
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: AJAX y TAG A

Te cuento la estructura general de mis archivos... tengo un archivo php principal, llamado pais.php que es quien se encarga de a traves de una conexion ($conexion_tmp), crear una tabla temporal que me resume informacion de otras.
Dentro de este php está la referencia a:

<?php echo '<td align=center>'. '<a href="showPais(this.value)">' . nombre_pais($pais) . '</a>' .'</td>';?>

que es quien invoca al resto de los archivos que ya el otro dia subi...
Es la primera vez que estoy trabajando con AJAX, por lo tanto, te imaginaras que tengo mil dudas... vos decis que AJAX inicia una nueva peticion... esto indicaria que la conexion no esta disponible?
A la vez me implicaria que la tabla temporal creada desde pais.php tambien se "esfuma"!!!

La otra que me quedaria seria crear una tabla fija en la base que la llene temporalmente de datos... y despues los borre. Alguna otra sugerencia?

Gracias!
Edith
  #7 (permalink)  
Antiguo 31/05/2008, 14:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: AJAX y TAG A

Así es etej,

No puedes "compartir" recursos temporales ya que son dos peticiones separadas, tienes que volver a conectarte y volver a leer los datos temporales.

Saludos.
  #8 (permalink)  
Antiguo 31/05/2008, 22:42
 
Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: AJAX y TAG A

OK, muchas gracias!
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 07:01.