Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2011, 21:37
Iduber
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 14 años, 2 meses
Puntos: 0
Asignar valores recuperados con AJAX

Mi problema es el siguiente: Tengo un FILESET con 2 SELECT y un INPUT, el SELECT "Descripción" y el INPUT "Número de Producto" se deben llenar con los datos de una tabla y el segundo SELECT "Seriales" deberia llenarse con los datos de otra tabla, pero esos datos que se cargaran en ese segundo SELECT van a depender de la opción que se seleccione en el primer SELECT.

El problema es que el dato que deberia cargarse dentro del INPUT se esta cargando es al lado del segundo SELECT, y no consigo como enviarlo a ese INPUT. Ya me dijeron que lo hiciera con un split, pero no logro hacerlo.

Aquí estan los códigos:

AJAX.JS
================================================== =======
Código PHP:
function objetoAjax(){
var 
xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (
e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (
E) {
xmlhttp false;
}
}

if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return 
xmlhttp;
}

function 
pedirDatos(){
//donde se mostrará el resultado

var lista,cedula_cliente,contacto_cliente,direccion_cl iente,ciudad_cliente,estado_cliente,telefono_clien te,email_cliente,ajax,resul;
lista document.getElementById("lista").value;
contacto_cliente document.getElementById("contacto_cliente");
cedula_cliente document.getElementById("cedula_cliente");
direccion_cliente document.getElementById("direccion_cliente");
ciudad_cliente document.getElementById("ciudad_cliente");
estado_cliente document.getElementById("estado_cliente");
telefono_cliente document.getElementById("telefono_cliente");
email_cliente document.getElementById("email_cliente");


ajax=objetoAjax();

ajax.open("POST""procesa.php",true);

ajax.onreadystatechange=function() {
if (
ajax.readyState==4) {

resul ajax.responseText.split('-');


contacto_cliente.value resul[2];
cedula_cliente.value resul[3];
direccion_cliente.value resul[4];
ciudad_cliente.value resul[5];
estado_cliente.value resul[6];
telefono_cliente.value resul[7];
email_cliente.value resul[8];


}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("nombre="+lista);
}


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

var 
productoresul;
producto document.getElementById("producto_equipo");

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=posicionSelectDestinoselectActual=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");nueva Opcion.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=objetoAjax();
ajax.open("GET""procesa.php?select="+idSelectDestino+"&opcion="+o pcionSeleccionada+"&producto="+productotrue);
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");nueva Opcion.value=0;nuevaOpcion.innerHTML="Cargando..." ;
selectDestino.appendChild(nuevaOpcion);selectDesti no.disabled=true;
}
if (
ajax.readyState==4)
{
selectDestino.parentNode.innerHTML=ajax.responseTe xt;
}
}
ajax.send(null);
}

================================================== =======

PROCESA.PHP
================================================== =======
Código PHP:
<?php
include("conexion.php");
include(
"datos_conexion.php");
include(
"functions.php");
$conexion = new Conexion_2010(servidor,usuario,clave,baseDatos);

if(isset (
$_POST['nombre'])){
$nombre $_POST['nombre'];

$consulta 'select * from clientes where nombre="'.$nombre.'" ';
$query mysql_query($consulta) or die (mysql_error());
$datos mysql_fetch_array($query);

echo 
$datos['codigo']."-".$datos['nombre']."-".$datos['contacto']."-".$datos['cedula']."-".$datos['direccion']."-".$datos['ciudad']."-".$datos['estado']."-".$datos['telefono']."-".$datos['email'];

exit;
}


if(isset(
$_GET["select"]) && isset($_GET["opcion"])){
$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"]; $producto $_GET['producto'];
}


$consulta mysql_query("SELECT * FROM seriales WHERE codigo_equipo='$opcionSeleccionada'") or die(mysql_error());
$sql mysql_query("SELECT producto FROM equipos WHERE codigo='$opcionSeleccionada'") or die(mysql_error());

$row mysql_fetch_array($sql);

// Comienzo a imprimir el select
echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
echo 
"<option value='0'>Elige</option>";
while(
$registro=mysql_fetch_row($consulta))
{
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
$registro[1]=htmlentities($registro[1]);
// Imprimo las opciones del select
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo 
"</select>";

echo 
$row['producto'];
echo 
"<input type='text' size='10' maxlength='10' value='".$row['producto']."' />";
}
================================================== =======

POR FAVOR AYUDENME