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

Problema de navegador al usar ajax

Estas en el tema de Problema de navegador al usar ajax en el foro de Frameworks JS en Foros del Web. Hola! Tengo un problema cuando uso firefox, trabajo con php y cuando intenté usar AJAX para crear combos que muestren una provincia con sus estados ...
  #1 (permalink)  
Antiguo 03/03/2010, 11:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema de navegador al usar ajax

Hola! Tengo un problema cuando uso firefox, trabajo con php y cuando intenté usar AJAX para crear combos que muestren una provincia con sus estados o cantones no se refresque la página... El problema es que cuando uso Firefox no captura los datos seleccionados de un combo, pero si uso Internet Explorer entonces todo funciona correctamente. El hecho es que no quiero usar iExplorer pues la palntilla css se deforma, sin embargo el problema de los combos con AJAX se soluciona...
Alguien me puede dar una idea de como solucionar este problema ?
  #2 (permalink)  
Antiguo 03/03/2010, 12:23
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Problema de navegador al usar ajax

Si, mira el problema esta en la linea 154, columna 8, en la variable que se llama

Código Javascript:
Ver original
  1. var niTePongoCodigo;

jajajaja

Pone tu codigo, sino no podemos adivinar!
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 04/03/2010, 12:23
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de navegador al usar ajax

jeje.. Lo siento!!!

Queria saber si no tiene nada que ver el hecho de usar firefox.. pero ya adjunto el código, te agradeceria mucho si me puedes ayudar, porque como mencioné antes en iExplorer todo funciona bien:



function nuevoAjax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
try {
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) {
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
xmlhttp=new XMLHttpRequest();
}
}
return xmlhttp;
}



// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listadoSelects=new Array();
listadoSelects[0]="Comprovincias";
listadoSelects[1]="Comcantones";

function buscarEnArray(array, dato)
{
// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
var x=0;
while(array[x])
{
if(array[x]==dato) return x;
x++;
}
return null;
}

function cargaContenido(idSelectOrigen)
{
// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
var posicionSelectDestino=buscarEnArray(listadoSelects , idSelectOrigen)+1;
// Obtengo el select que el usuario modifico
var selectOrigen=document.getElementById(idSelectOrige n);
// Obtengo la opcion que el usuario selecciono
var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
if(opcionSeleccionada==0)
{
var x=posicionSelectDestino, selectActual=null;
// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
while(listadoSelects[x])
{
selectActual=document.getElementById(listadoSelect s[x]);
selectActual.length=0;

var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opción...";
selectActual.appendChild(nuevaOpcion); selectActual.disabled=true;
x++;
}
}
// Compruebo que el select modificado no sea el ultimo de la cadena
else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
{
// Obtengo el elemento del select que debo cargar
var idSelectDestino=listadoSelects[posicionSelectDestino];
var selectDestino=document.getElementById(idSelectDest ino);
// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
var ajax=nuevoAjax();
ajax.open("POST", "prue1.php?select="+idSelectDestino+"&opcion="+opc ionSeleccionada, true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==1)
{
// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
selectDestino.length=0;
var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;
}
if (ajax.readyState==4)
{
selectDestino.parentNode.innerHTML=ajax.responseTe xt;
}
}
ajax.send(null);
}
}
  #4 (permalink)  
Antiguo 04/03/2010, 12:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de navegador al usar ajax

Bueno, es un código que encontré en el internet y estoy adaptando a mi sistema. Algo habia visto sobtre este problema en un foro cerrado..
  #5 (permalink)  
Antiguo 04/03/2010, 12:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de navegador al usar ajax

----------------prue1.php------------------


<?

include_once('libreria.inc');



$listadoSelects=array( "Comprovincias"=>"provincias", "Comcantones"=>"cantones");

function validaSelect($selectDestino){
global $listadoSelects;
if(isset($listadoSelects[$selectDestino])) return true;
else return false;
}

function validaOpcion($opcionSeleccionada){
if(is_numeric($opcionSeleccionada)) return true;
else return false;
}

$selectDestino=$_GET["select"];
$opcionSeleccionada=$_GET["opcion"];

if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
$tabla=$listadoSelects[$selectDestino];
$sqlcan="select id_canton, nombre_canton from $tabla WHERE id_provincia='$opcionSeleccionada'";
$rescan=pg_exec(conecta(),$sqlcan) or die("problema seleccion canton");

echo "<select name=\"$selectDestino\" id=\"$selectDestino\" onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige el canton</option>";

// 1, 1 ,,, 0, 1 fetch_row
while($registro=pg_fetch_array($rescan)){
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
$registro[nombre_canton]=htmlentities($registro[nombre_canton]); // Imprimo las opciones del select
echo "<option value=\"$registro[id_canton]\">".$registro[nombre_canton]."</option>";
}
echo "</select>";

}

?>
  #6 (permalink)  
Antiguo 04/03/2010, 12:35
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Problema de navegador al usar ajax

Por favor!!! Usa los resaltadores codigo del foro que hay mil!!!! Es nocivo para la vision sino!
__________________
HV Studio
Diseño y desarrollo web

Etiquetas: ajax, navegadores
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 23:15.