Ver Mensaje Individual
  #9 (permalink)  
Antiguo 25/04/2007, 07:21
killaton
 
Fecha de Ingreso: julio-2003
Mensajes: 71
Antigüedad: 20 años, 9 meses
Puntos: 0
Re: Pasar mas de un dato con AJAX y PHP

Oka....

te paso el codigo completo...

Código HTML:
<script type="text/javascript" language="JavaScript1.2">

var url_carga_segundo_combo = "accion_carga_segundo_combo.php?id=";

var http = getHTTPObject(); // We create the HTTP Object

//---------------------------------------------------
//-- Genera xmlHttpRequest
//---------------------------------------------------

function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}

//------------------------------ on change del 1er combo

function onChange_primer_combo() {

// obtenemos el id seleccionado del 1er combo
var selObj = document.getElementById('cbx_primero');
var selIndex = selObj.selectedIndex;
var v_id = selObj.options[selIndex].value;

// blanquemos el 2do combo
document.getElementById('cbx_segundo').options.len gth = 0;

http.open("GET", url_carga_segundo_combo + escape(v_id) , true);

http.onreadystatechange = handleHttpResponse_onChange_primer_combo;

http.send(null);



}

// y por ultimo publicamos los resultados

//*---------------------------------------------------------------
//-- Publica Combo PERFIL segun seleccion Combo ANCHOS - PASO II
//----------------------------------------------------------------

function handleHttpResponse_onChange_Combo_Ancho() {



if (http.readyState == 4) {

var i; 

var total = http.responseXML.getElementsByTagName('LINEA').len gth;



results = http.responseText.split(",");




for(i=0;i<total;i++){

document.getElementById('cbx_segundo').options[i+1]= new Option( http.responseXML.getElementsByTagName('COL1')[i].firstChild.data ,http.responseXML.getElementsByTagName('COL2')[i].firstChild.data);

}



window.status = '';


return false;

}

}

</script> 
Bien hasta aqui seria todo tu codigo javascript necesario

Ahora como ultimo vamos con el php...

Creas un php con el nombre accion_carga_segundo_combo.php


este archivo va a publicar un XML por lo tanto debe llevar los tags de xml para identificarlo como tal. Va el codigo.

Código PHP:
<?php
header
('Content-Type: text/xml');
header ("Expires: Fri, 14 Mar 1980 20:53:00 GMT"); //la pagina expira en fecha pasada
header ("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT"); //ultima actualizacion ahora cuando la cargamos
header ("Cache-Control: no-cache, must-revalidate"); //no guardar en CACHE
header ("Pragma: no-cache"); 

$host "host";
$user "usuario";
$password "password";
$db "base_de_datos";

$link mysql_connect($host$user$password);

mysql_select_db($db,$link);

$sql "SELECT * FROM medida_perfil ";
$sql .= " WHERE campo_en_relacion_con_primer_combo = '$id' ";

$result mysql_query($sql);

if (
mysql_num_rows($result) > 0) {

$string '';
$string '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
$string .= "<MARCAS>\n";

while (
$row mysql_fetch_assoc($result)){

$string .= "<LINEA>\n";
$string .= "<COL1>".$row[id_segundo_combo]."</COL1>\n";
$string .= "<COL2>".$row[descripcion]."</COL2>\n";
$string .= "</LINEA>\n";


}

$string .= "</MARCAS>\n";

echo 
$string;
}

?>
LISTO... de esta forma debe funcionar sin problemas....

PD: perdon por el encolumnamiento.

salu2