Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/08/2007, 03:27
Avatar de bichomen
bichomen
 
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Ajax no funciona

Hola dentro de un iframe estoy tratando de cargar las provincias que tengo dependiendo del pais, la idea es la siguiente dentro del iframe tengo una pagina y dentro de esta pagina cargo el formulario con un include, en el formulario pongo:

Código PHP:
</td><td colspan="3" valign="middle">

                    <select name="idpais" class="formularios3">

                    <?php
                    $result 
mysql_query($sql,$con) or die ("problema con query: ".mysql_error());
                    
                    while(
$row mysql_fetch_array($result))
                    {
                        
$id_pais $row['id_pais'];
                        
$pais =  $row['pais'];

                        if(
$idpais != '' or $idpais != null)
                        {
                            if(
$id_pais == $idpais)
                            {
                                
?>
                                    <option selected value="<?php echo $id_pais?>" onChange="cargar_contenido('provincia', 'provincias.php?idpais=<?php echo $id_pais?>');"><?php echo $pais?>
                                    </option>
                                <?php
                            
}                        
                        }                        
                    
?>    
                    
                    <option value="<?php echo $id_pais?>" onChange="cargar_contenido('provincia', 'provincias.php?idpais=<?php echo $id_pais?>');"><?php echo $pais?></option>
                    
                <?php
                    
}
                
?>
                 </select>
                                        
                </td></tr>
                <tr><td height="25" valign="middle" style="padding-left:20px;">
                
                    <span class="formularios2">Provincia:</span>
                    
                </td><td colspan="3" valign="middle">

                    <div id="provincia">
                        <select name="provincia" class="formularios3">
                        </select>
                    </div>                    
                
                </td></tr>

provincias.php

Código PHP:
<?php 
    $idpais 
$_GET['idpais'];
?>
<select name="provincia" class="formularios3">

    <?php
        $sql1 
"select * from provincies where id_pais = ".$idpais;
        
$result1 mysql_query($sql1,$con) or die ("problema con query 1: ".mysql_error());
                
        while(
$row1 mysql_fetch_array($result1))
        {
            
$idprovincia $row1['id_provincia'];
            
$provincia =  $row1['provincia'];                    
    
?>

    <option value="<?php echo $idprovincia?>"><?php echo $provincia?>
                
    <?php
        
}
    
?>
</select>
y en la pagina q carga el iframe tengo:

Código HTML:
<script src="ajax.js" language="JavaScript"></script> 


por ultimo el archivo ajax.js

Código HTML:
<script language="Javascript" type="text/javascript">
<!--

var http_request = false;

function makeRequest(rutas)
{
	http_request = false;

	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			http_request.overrideMimeType("text/xml");
			// Ver nota sobre esta linea al final
		}
	}	
	else if (window.ActiveXObject) 
	{ // IE
		try 
			{
				http_request = new ActiveXObject("Msxml2.XMLHTTP");
			} 
		catch (e) 
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) 
			{
			}
		}
	}

	if (!http_request) 
	{
		alert("ERROR :( No es posible crear una instancia XMLHTTP");
		return false;
	}
	http_request.onreadystatechange = alertContents;
	http_request.open("GET", rutas, true);
	http_request.send(null);

}

function alertContents() 
{

	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			alert(http_request.responseText);
		} 
		else 
		{
			alert("Hubo problemas con la petición.");
		}
	}

}

function XHConn()
{
	var xmlhttp, bComplete = false;
	try 
	{ 
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch (e) 
	{ 
		try 
		{ 
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
		}
		catch (e) 
		{ 
			try 
			{ 
				xmlhttp = new XMLHttpRequest(); 
			}
			catch (e) 
			{ 
				xmlhttp = false; 
			}
		}
	}
	if (!xmlhttp) return null;
	this.connect = function(sURL, sMethod, sVars, fnDone)
	{
		if (!xmlhttp) return false;
		bComplete = false;
		sMethod = sMethod.toUpperCase();
			
		try 
		{
			if (sMethod == "GET")
			{
				xmlhttp.open(sMethod, sURL+"?"+sVars, true);
				sVars = "";
			}
			else
			{
				xmlhttp.open(sMethod, sURL, true);
				xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
				xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			}
				
			xmlhttp.onreadystatechange = function()
			{
				if (xmlhttp.readyState == 4 && !bComplete)
				{
					bComplete = true;
					fnDone(xmlhttp);
				}
			};
					
			xmlhttp.send(sVars);
		}
		catch(z) 
		{	
			return false; 
		}
		return true;
	};
	return this;
}

function cargar_contenido(capas, rutas) 
{ 

	alert("HOLAAAAAAAAAAAAAAAAAAAA!!!!");
	var capas = capas;
	//document.getElementById(capas).innerHTML = 'Cargando...'; 
	var myConn = new XHConn(); 
	if (!myConn) alert("XMLHTTP no esta disponible. Inténtalo con un navegador más actual.");
	
	var peticion = function (oXML) 
	{	
		var cap = document.getElementById(capas);
		
		if(oXML.readyState == 4)
		{
		cap.innerHTML = oXML.responseText; 
		} 
		else 
		{
			//cap.innerHTML = 'Cargando...<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="5" height="5"><param name="movie" value="spinner.swf" /><param name="quality" value="high" /><embed src="spinner.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="5" height="5"></embed></object>';
			cap.innerHTML = 'Cargando...';
		}
	}; 
	myConn.connect(rutas, "GET", "", peticion); 
}

//-->
</script> 

pero no hace nada, tampoco el javascript presenta ningun error es como si no fuese a buscar el ajax.js cuando selecciono el pais

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332