Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2008, 22:35
Avatar de Highlander
Highlander
 
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 18 años, 6 meses
Puntos: 4
Usando ajax para cargar un campo(No combobox)

Buenas he estado peleando modificando este codigo y logre hacer que me funcionara pero tiene unos detalles que no he logrado solucionar:

1- El campo donde recibo mi dato es una lista y quiero cambiarlo a que sea un campo de texto simple ya que solo recibo un dato.

2- No me resulta enviar mas de 1 dato, por ej: envio el ID via ajax, para devolver la descripcion del articulo, pero si trato de enviar ademas su precio no me carga el dato en otro campo.

salida.html
Código:
<span id="espera"></span>
<select name="desc_art" class="style3" id="desc_art"></select>
consulta.php
Código:
<?php
$codigo_art=$_REQUEST['cod'];

$link = mysql_connect('localhost','root');
$db_selected = mysql_select_db('SCI', $link);
			
$consulta = "SELECT DESC_ART, VALOR_ART FROM articulo WHERE CODIGO_ART = '$codigo_art'"; 
$resultado = mysql_query($consulta,$link);
$datos = mysql_fetch_array($resultado);
$materias[]=$datos["DESC_ART"];
$materias2[]=$datos["VALOR_ART"];
mysql_close($link); 

$xml="<?xml version=\"1.0\"?>\n";
$xml.="<materias>\n";
for($f=0;$f<count($materias);$f++)
{
  $xml.="<materia>".$materias[$f]."</materia>\n";
}
$xml.="</materias>\n";
echo $xml;
header('Content-Type: text/xml');

?>
funciones.js
Código:
addEvent(window,'load',inicializarEventos,false);

function inicializarEventos()
{
  var select1=document.getElementById('codigo_art');
  addEvent(select1,'change',mostrarMaterias,false);
}

var conexion1;
function mostrarMaterias(e) 
{
  var codigo=document.getElementById('codigo_art').value;
  if (codigo!=0)
  {
    conexion1=crearXMLHttpRequest();
    conexion1.onreadystatechange = procesarEventos;
    conexion1.open('GET','consulta.php?cod='+codigo, true);
    conexion1.send(null);
  }
  else
  {
    var select2=document.getElementById('desc_art');
    select2.options.length=0;
  }
}

function procesarEventos()
{
  if(conexion1.readyState == 4)
  {
    var d=document.getElementById('espera');
    d.innerHTML = '';
    var xml = conexion1.responseXML;
    var pals=xml.getElementsByTagName('materia');
    var select2=document.getElementById('desc_art');
    select2.options.length=0;
    for(f=0;f<pals.length;f++)
    {
      var op=document.createElement('option');
      var texto=document.createTextNode(pals[f].firstChild.nodeValue);
      op.appendChild(texto);
      select2.appendChild(op);
    } 
	
	//
	
	//
  } 
  else 
  {
    var d=document.getElementById('espera');
    d.innerHTML = '<img src="../cargando.gif">';
  }
}


//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      return false;
}

function crearXMLHttpRequest() 
{
  var xmlHttp=null;
  if (window.ActiveXObject) 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (window.XMLHttpRequest) 
      xmlHttp = new XMLHttpRequest();
  return xmlHttp;
}
__________________
Ingeniero (E) en Computación e Informática
The last man alone with god.