PDA

Ver la Versión Completa : Ajax errores


richy08
10-01-2008, 23:10:11
Buenas tardes compañeros alguien me podria pasar una libreria estable del ajax con ejemplos para esa version tengo toda la tarde tratando de hacer correr los ejemplos pero siempre me tira errores o no me da el resultado completo, no se si es por l version de la libreria que n ocoincide con el ejemplo o por que s una version beta y no funciona bien gracias

este es el ejemplo queme muestra a media de hecho es un ejemplo que quise adaptar para que la informacio nsea extraida de la base de datos.

index.php

<?php
include ("conexion.inc");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Pulldon Dependiente</title>
<!-- Lo primero es llamar las funciones que usaremos -->
<script language="JavaScript" src="_scripts.js" type="text/javascript"></script>
</head>
<body>
<!-- Ahora pondre un iframe (para esto necesito uno solo). Esto se pude generar en memoria (como hacia gmail), y generar tantos como sea necesario-->
<iframe id="iframeCentral" name="iframeCentral" style="width:0px; height:0px; border: 0px;diplay: hidden;"></iframe>
<table>
<td>
<input type="text" name="date3" size="40">
</td>
<td>
País:<br />
<?php
$sql = "select aSEr, sDes from service order by (sDes) ";
$result = mysql_query($sql,$link );
$i=0;
echo"<select name='pais' id='pais' onchange='recargarCiudad( this );'>";
echo "<option value='' >......................</option>\n";
echo "while";
while ($row1=mysql_fetch_row($result))
{
echo "<option value=".$row1[$i].">".$row1[$i+1]."</option>\n";
}
echo "</select>";
?>
</td>
<td>
Ciudad:<br />
<!-- En este span es donde ira el pulldown hijo -->
<span id="divCentral" name="divCentral" align="left"></span>
</td>
</body>
</html>



pulldowntwo

<?php
include ("conexion.inc");
#Puse un vector, pero esto puede ser una llamada a la db o lo que crean conveniente.
#$ciudades = array(
#array( '' => 'Seleccione' ), /*Primera posicion Select, por si no llega nada*/
#array( '' => 'Selecione', 1 => 'Buenos Aires', 2 => 'Rio Negro' ), /*Posicion 1 Argentina*/
#array( '' => 'Selecione', 3 => 'San Pablo', 4 => 'Rio de Janeiro' ), /*Posicion 2 Brasil*/
#array( '' => 'Selecione', 5 => 'Santiago de Chile', 6 => 'Valparaiso' ) /*Posicion 3 Chile*/
#);
#Levantamos pais que es lo que nos pasa el pulldonw padre.
//$pais = isset( $_GET["pais"] ) ? intval( $_GET["pais"] ) : 0 ;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>
<body>
<!--Es importante saber, que todo lo que este en este div será lo que ira al document padre segurn el ejemplo.-->
<div id="divContenido" name="divContenido">
<?PHP
echo "pais";
$sqls="select * from renservice where aRenServ='$_GET[pais]'";
$results = mysql_query($sqls,$link);
echo"<select name='ciudad' id='ciudad' >";
echo "<option value= >.................</option>\n";
while ($row1=mysql_fetch_row($results))
{
echo "<option value=".$row1[0].">".$row1[2]."</option>\n";
}
echo "</select>";
?>
</div>
<?php
#Este file se encargara de procesar el div de arriba y mostrarlo en el destino
require_once "_process.php";
?>
</body>
</html>



_script.js

<!--
//Funcion de macromedia, excelente desempeño!. Se le pasa objeto y donde buscar (por default el document actual)
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//Variable para el preload. Suelo usar un gif, pero esto es mas liviano para el ejemplo.
var PreLoader = 'Loading...';
//Esta función es la que procesará un archivo (pagina) y mostrará el resultado en un objeto del document (destino), siempre sera procesando mediante origen (que es el iframe).
function cargarPagina( pagina, destino, origen ){
//Primero muestro el preload
mostrarPreLoader( destino );
//Y luego le digo al iframe que me procese el php "pagina". Además le paso "destino" así se a donde muestro el resultado.
frames[origen].location.href = pagina + '&destino=' + destino;
}
//Función que mostrará el preload
function mostrarPreLoader( destino ){
var objeto = MM_findObj( destino );
objeto.innerHTML = PreLoader;
}
//Esta funcion es solo para este ejemplo, asi separamos mas las cosas:
function recargarCiudad( pais ){
var codigoPais = pais.value;
cargarPagina('pullDownTwo.php?pais=' + codigoPais,'divCentral','iframeCentral');
return false;
}
//-->


_process.php

<script>
//Volvemos a incluir la función, ya que solo esta en el archivo padre.
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//Este es el destino que se pasa de la funcion cargarPagina de _script.js
<?php $destino = $_GET["destino"]; ?>
//Buscamos el div que contiene el pulldown hijo
var contenedor = MM_findObj( 'divContenido' );
var contenido = contenedor.innerHTML;
//Ahora buscamos el destino. Fijense en el window.parent.document.
var LayerDestino = MM_findObj( '<?php echo $destino;?>', window.parent.document );
//Para saber que esta pasando podemos descomentar el siguiente alert.
//Otra es poner el tamaño del iframe de index.php en tamaños visibles (ej, 400px) y ver en él, el error php.
//porque sepamos que si ocurre un error en php, este cortara el proceso y no llegara a esta parte, quedando siempre en un preload infinito.
alert( contenido );
//Por ultimo nos resta mandar el contenido que reemplazara al preload.
LayerDestino.innerHTML = contenido;
</script>



de antemano gracias

richy08
10-01-2008, 23:23:24
jeje me respondo yo solo funciona a la perfeccion el error esta al hacer el query del segundo combobox deberia ser asi $sqls="select * from renservice where aServ='$pais'"; hay lo dejo para si a alguien le sirve