<div dir="ltr">Gracias por las respuestas, tarde pero seguro :). Otra pregunta, para que al seleccionar un elemento de un "select" se carguen con sus datos otros campos "input" seria un procedimiento similar? algún link para compartir de referencia? gracias!!</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">El 13 de febrero de 2014, 9:31, Rodrigo Fernandez <span dir="ltr"><<a href="mailto:shodri@gmail.com" target="_blank">shodri@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Que tal Cesar,<br>
<br>
    Hace poco tuve que resolver el mismo problema y lo consulté acá<br>
por la lista. Te paso los mail a ver si te sirven de guia para que lo<br>
puedas adaptar a tus necesidades. Yo encare el tema con AJAX.<br>
<br>
><br>
Que tal phperos!<br>
Les cuento que ando complicado queriendo cargar un select de modelos<br>
de autos mediante otro de marcas de autos. Asi si uno elige Renault,<br>
se cargan todos los modelos de Renault, etc.<br>
<br>
Modificando un ejemplo de <a href="http://www.ajaxya.com.ar" target="_blank">www.ajaxya.com.ar</a> lo logré hacer, pero mi<br>
problema ahora es que no se como pasar el "value" de los modelos, me<br>
queda el <option></option> pelado. Sin más les paso el código:<br>
<br>
pagina.php--------------------------------------------------------------------------------------------------<br>
<br>
<html><br>
<head><br>
<script src="funciones.js" language="JavaScript"></script><br>
</head><br>
<body><br>
<h1>Prueba de cargar un control de tipo select recuperando datos del servidor<br>
mediante AJAX</h1><br>
Seleccione la carrera:<br>
<select id="marcas" name="marcas"><br>
        <option value="0">Seleccionar....</option><br>
<br>
        <?php<br>
<br>
        include '../includes/conect.php';<br>
        $qry="SELECT * FROM marcas";<br>
        $res=mysqli_query($link, $qry);<br>
        while($row=mysqli_fetch_array($res)){   ?><br>
<br>
        <option value="<?=$row['id']?>"><?=$row['marca']?></option><br>
<br>
        <?php<br>
         }<br>
         ?><br>
</select><span id="espera"></span><br><br>
Materias de la carrera:<br>
<select id="modelos" name="modelos"><br>
</select><br><br>
</body><br>
</html><br>
<br>
pagina1.php-----------------------------------------------------------------------------------------------------------<br>
<br>
<?php<br>
$car=$_REQUEST['cod'];<br>
include '../includes/conect.php';<br>
$materias=array();<br>
$valores=array();<br>
$qry="SELECT * FROM modelos WHERE id_mar=$car";<br>
$res=mysqli_query($link, $qry);<br>
while ($row=mysqli_fetch_array($res)){<br>
        $modelos[]=$row['modelo'];<br>
}<br>
<br>
<br>
$xml="<?xml version=\"1.0\"?>\n";<br>
$xml.="<modelos>\n";<br>
for($f=0;$f<count($modelos);$f++)<br>
{<br>
  $xml.="<modelo>".$modelos[$f]."</modelo>\n";<br>
}<br>
$xml.="</modelos>\n";<br>
header('Content-Type: text/xml');<br>
echo $xml;<br>
?><br>
<br>
funciones.js---------------------------------------------------------------------------------------------------------------<br>
<br>
addEvent(window,'load',inicializarEventos,false);<br>
<br>
function inicializarEventos()<br>
{<br>
  var select1=document.getElementById('marcas');<br>
  addEvent(select1,'change',mostrarMaterias,false);<br>
}<br>
<br>
var conexion1;<br>
function mostrarMaterias(e)<br>
{<br>
  var codigo=document.getElementById('marcas').value;<br>
  if (codigo!=0)<br>
  {<br>
    conexion1=crearXMLHttpRequest();<br>
    conexion1.onreadystatechange = procesarEventos;<br>
    conexion1.open('GET','pagina1.php?cod='+codigo, true);<br>
    conexion1.send(null);<br>
  }<br>
  else<br>
  {<br>
    var select2=document.getElementById('modelos');<br>
    select2.options.length=0;<br>
  }<br>
}<br>
<br>
function procesarEventos()<br>
{<br>
  if(conexion1.readyState == 4)<br>
  {<br>
    var d=document.getElementById('espera');<br>
    d.innerHTML = '';<br>
    var xml = conexion1.responseXML;<br>
    var pals=xml.getElementsByTagName('modelo');<br>
    var select2=document.getElementById('modelos');<br>
    select2.options.length=0;<br>
    for(f=0;f<pals.length;f++)<br>
    {<br>
      var op=document.createElement('option');<br>
      var texto=document.createTextNode(pals[f].firstChild.nodeValue);<br>
      op.appendChild(texto);<br>
      select2.appendChild(op);<br>
    }<br>
  }<br>
  else<br>
  {<br>
    var d=document.getElementById('espera');<br>
    d.innerHTML = '<img src="../cargando.gif">';  }<br>
}<br>
<br>
<br>
//***************************************<br>
//Funciones comunes a todos los problemas<br>
//***************************************<br>
function addEvent(elemento,nomevento,funcion,captura)<br>
{<br>
  if (elemento.attachEvent)<br>
  {<br>
    elemento.attachEvent('on'+nomevento,funcion);<br>
    return true;<br>
  }<br>
  else<br>
    if (elemento.addEventListener)<br>
    {<br>
      elemento.addEventListener(nomevento,funcion,captura);<br>
      return true;<br>
    }<br>
    else<br>
      return false;<br>
}<br>
<br>
function crearXMLHttpRequest()<br>
{<br>
  var xmlHttp=null;<br>
  if (window.ActiveXObject)<br>
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");<br>
  else<br>
    if (window.XMLHttpRequest)<br>
      xmlHttp = new XMLHttpRequest();<br>
  return xmlHttp;<br>
}<br>
<br>
<br>
<br>
Mi problema es como pasar también como valor del option<br>
(<modelo></modelo>) el id del modelo.<br>
<br>
Si alguien que se da más maña con esto me da una mano más que agradecido.<br>
<br>
Saludos !<br>
<br>
>>> Y Leo contestó<br>
<br>
Hola Rodrigo,<br>
<br>
        a pagina1.php (que nombre poco descriptivo!) agregale más semántica,<br>
para que salida quede así:<br>
<br>
<br>
<modelos><br>
        <modelo><br>
                <id>1</id><br>
                <nombre>Gol</nombre><br>
        </modelo><br>
        <modelo><br>
                <id>2</id><br>
                <nombre>Golf</nombre><br>
        </modelo><br>
        <modelo><br>
                <id></id><br>
                <nombre>Suran</nombre><br>
        </modelo><br>
</modelos><br>
<br>
        Si no reccibís el valor para el VALUE, no vas a tener de dónde sacarlo!<br>
        De paso, el código es más simple y directo si en cada ciclo del WHILE<br>
generás cada entrada XML, que cargar todo en un vector para después<br>
tener que recorrer el vector para generar el XML: con una sola<br>
estructura de repetición basta.<br>
<br>
        Después en JavaScript, leés los Modelos, pero ahora tenés adentro los<br>
ID y los NOMBRE de cada uno. Los cargás al OPTION así:<br>
<br>
...<br>
var op=document.createElement('option');<br>
op.value = id;<br>
op.text = nombre;<br>
select2.appendChild(op);<br>
...<br>
<br>
        ya que un OPTION tiene como propiedad un value y un text (en vez de<br>
ponerle el text con un appendChild() adentro.<br>
        Lo único que te queda por adaptar es la lectura del XML que ahora tiene<br>
una forma diferente.<br>
<br>
        Es una pavada! ;-) (Para él todo es una pavada :-P)<br>
<br>
Espero que te sirva de algo.<br>
<br>
Saludos !<br>
<br>
El 12/2/14, Leonardo Tadei - Pegasus Tech Supply<br>
<<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a>> escribió:<br>
<div class="HOEnZb"><div class="h5">> Hola Cesar:<br>
><br>
> El mié, 12-02-2014 a las 10:30 -0200, Cesar Gimenez Lascano escribió:<br>
>> Hola. Quisiera saber si alguien tiene un link de algún tuto o podría<br>
>> guiarme a como hacer, por ejemplo, al seleccionar en un select el<br>
>> nombre de una empresa, otro select debajo se cargue con los productos<br>
>> de dicha empresa. Estoy trabajando con mysql.<br>
><br>
> <a href="http://entredesarrolladores.com/2418/formulario-php-javascript-actualizar-campos-cambiar-select?show=2418#q2418" target="_blank">http://entredesarrolladores.com/2418/formulario-php-javascript-actualizar-campos-cambiar-select?show=2418#q2418</a><br>

> <a href="http://entredesarrolladores.com/3350/c%C3%" target="_blank">http://entredesarrolladores.com/3350/c%C3%</a><br>
> B3mo-mediante-cuando-haga-click-select-categorias-aparezca?show=3350#q3350<br>
><br>
> También hay respuestas a esto en el archivo de la lista del curso, pero<br>
> no tiene buscador :-(<br>
><br>
>> Leo: quería asistir a la clase de seguridad, hacerte un par de<br>
>> consultas y recibir la devolución de la tesis, decime si es posible.<br>
>> gracias!!!<br>
><br>
>       Es posible!<br>
><br>
>       El día del recuperatorio será el que más tiempo tengamos, pero venite<br>
> cualquier jueves de los que quedan o más de uno si querés.<br>
><br>
>       Hace un par de semanas envié el cronograma de las actividades de<br>
> Febrero.<br>
><br>
>       Saludos!<br>
><br>
> --<br>
> Leonardo Tadei<br>
> <a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
> Web: <a href="http://leonardo.tadei.com.ar" target="_blank">http://leonardo.tadei.com.ar</a><br>
> Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
><br>
> _______________________________________________<br>
> Lista de correo: Php-avanzado<br>
> Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> Administración Web:<br>
> <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
> Desubscripción:<br>
> <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
><br>
_______________________________________________<br>
Lista de correo: Php-avanzado<br>
Mensajes a la lista: <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
Administración Web: <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
Desubscripción: <a href="http://php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe" target="_blank">php-avanzado-request@pato2.fi.mdp.edu.ar?subject=unsubscribe</a><br>
</div></div></blockquote></div><br></div>