Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Rellenar campos automaticamente...

Estas en el tema de Rellenar campos automaticamente... en el foro de Frameworks JS en Foros del Web. Tengo un problema con el rellenado de campos automaticamente. les pondre mi codigo: <head> <title>Prueba</title> <script language="JavaScript" type="text/javascript"> var xmlhttp = false; //--- try { ...
  #1 (permalink)  
Antiguo 17/08/2009, 20:40
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Rellenar campos automaticamente...

Tengo un problema con el rellenado de campos automaticamente.

les pondre mi codigo:


<head>
<title>Prueba</title>
<script language="JavaScript" type="text/javascript">
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();
}
//---
function peticAjax(pagina,cad){
var parametro = "proveedor="+cad; alert(parametro);
xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}
xmlhttp.send(parametro);
}
</script>
</head>
<body>
<?php
include("../db/coneccion.php");

$sql= ("select nombre_proveedor,extra1,extra2 from proveedores");
$rs=mysql_query($sql,$conectar);
$prov = mysql_fetch_array($rs);
//echo $prov['nombre_proveedor']."::~::".$prov['extra1']."::~::".$prov['extra2'];

echo "<form id=\"form1\" name=\"form1\" method=\"post\" action=\"\">
<select id=\"cmbproveedor\" onchange=\"javascript:peticAjax('prueba2.php',this .value);\">
<option value=''>--- Selecc. Proveedor ---</option>";
while($prov1 = mysql_fetch_array($rs)){
echo "<option value=".$prove['nombre_proveedor'].">".$prov1['nombre_proveedor']."</option>";
}
echo "</select>
Tipo de Cami&oacute;n:<input name=\"txttipo\" type=\"text\" id=\"txttipo\"/>
Placas:<input name=\"txtplaca\" type=\"text\" id=\"txtplaca\" size=\"10\" />
</form>";

//.................................................. .................................................. ..............
?>
</body>
</html>


El problema que tengo aqui es que no manda al cad lo que selecciono en el combobox.

y por eso no rellena los dos campos que necesito alguien me puede apoyar diciendome cual es el error???

Gracias.
  #2 (permalink)  
Antiguo 18/08/2009, 05:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Prueba con

Código html:
Ver original
  1. javascript:peticAjax('prueba2.php',document.getElementById(this.id).options[document.getElementById(this.id).selectedIndex].value)

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 18/08/2009, 13:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Respuesta: Rellenar campos automaticamente...

Gracias por la pronta respuesta...

Sin embargo, lo que me has mandado lo he probado en el codigo y ejecutado en el explorador, y sigue con el mismo problema.

Te comento que en esta parte del codigo:

function peticAjax(pagina,cad){
var parametro = "proveedor="+cad; alert(parametro);
xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}

Coloco el alert para ver si efectivamente me recibe el valor en el cad. Pero no lo recibe.


en esta parte:

onchange=\"javascript:peticAjax('prueba2.php',this .value)

me he guiado de un ejemplo anterior, y supongo que el problema esta al momento de mandar el valor con el this.value.

Gracias de nuevo.

Aún sigo con el problema
  #4 (permalink)  
Antiguo 18/08/2009, 14:57
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Solo me fije que lo pasabas como argumento y no mire el resto. Esto está mal
var parametro = "proveedor="+cad; alert(parametro);

prueba a quitarlo y en el send

xmlhttp.send('proveedor='+escape(cad));

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 18/08/2009, 15:37
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Respuesta: Rellenar campos automaticamente...

Ya lo he hecho:

function peticAjax(pagina,cad){

xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}
xmlhttp.send('proveedor='+escape(cad));
}

Aún no manda los datos.. ahora bien que hace eso que me diste, pues no le he cachado.
  #6 (permalink)  
Antiguo 19/08/2009, 06:26
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Verifica que cad trae algo

En cuanto a tu duda, envía el parámetro, escapado, a prueba2.php

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 19/08/2009, 08:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Respuesta: Rellenar campos automaticamente...

Eso de verificar si cad trae algo, supongo que me indicas que coloque un alert en esta parte:

function peticAjax(pagina,cad){ alert(cad);

xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}
xmlhttp.send('proveedor='+escape(cad));
}

Pues mira si no coloco el alert, me sigue sin mandar los datos pero manda codigo basusar en los inputs. Salvo en placas, que manda: undefined

y si se lo pongo, no hace nada y me despliega el cuadro de mensajes vacio.
  #8 (permalink)  
Antiguo 19/08/2009, 14:11
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Sí, me refería a eso. Recuerda que has de recoger el valor seleccionado así

Código html:
Ver original
  1. <select id=\"cmbproveedor\" onchange=\"javascript:peticAjax('prueba2.php',document.getElementById(this.id).options[document.getElementById(this.id).selectedIndex].value);\">

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 19/08/2009, 19:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Respuesta: Rellenar campos automaticamente...

Gracias de nuevo por responder.

Y si, asi lo tengo el codigo, tal y cual como me lo mandaste pero aun sigo con el mismo problema.

Volveria a colocar todo el codigo pero es redundante.
  #10 (permalink)  
Antiguo 20/08/2009, 04:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Supongo por tu respuesta que cad llega vacío. Lo único que se me ocurre es quitar javascript:, ya que no es necesario

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #11 (permalink)  
Antiguo 20/08/2009, 13:03
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

supongo que te refieres a esta linea:

<script language="javascript" type="text/javascript">

Pues aun asi, si no tiene caso que lo lleve, pues no lo tomaria en cuenta el interprete, de todas formas se la he quitado y nada de nada.

Si no hay solucion con este codigo, podrias indicarme alguna otra manera para hacer lo que necesito?

Gracias.
  #12 (permalink)  
Antiguo 21/08/2009, 06:36
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Me refería a eliminarlo de aquí

onchange=\"javascript:peticAjax('prueba2.php',document.getElementById(th is.id).options[document.getElementById(this.id).selectedIndex].value);\">

Aún no me has respondido. ¿Trae algo "cad"?. El problema parece estar ahí

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #13 (permalink)  
Antiguo 21/08/2009, 15:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

Ok...

ya hice lo que me indicaste y pido disculpas por la confución...

onchange=\"peticAjax('prueba2.php',document.getEle mentById(this.id).options[document.getElementById(this.id).selectedIndex].value);\">

ahora me pides que te diga si acarrea algo el 'cad', pues te comento que no.. en este pedazo de codigo:

function peticAjax(pagina,cad){ alert(cad);

xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}
xmlhttp.send('proveedor='+escape(cad));
}

si te das cuenta, coloco el alert(); para darme cuenta si manda algo en el cad, pero me despliega la ventana sin nada, es decir el cad no esta resibiendo nada.

no se como incrustar la imagen sino te la colocaria.

Saludos
  #14 (permalink)  
Antiguo 22/08/2009, 07:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Que extraño!! Bueno vamos a probar sacandolo de PHP

Código html:
Ver original
  1. ?>
  2. <form id="form1" name="form1" method="post" action="">
  3. <select id="cmbproveedor" onchange="peticAjax('prueba2.php',document.getElementById(this.id).options[document.getElementById(this.id).selectedIndex].value);">
  4. <option value=''>--- Selecc. Proveedor ---</option>
  5.  
  6. <?
  7. while($prov1 = mysql_fetch_array($rs)){
  8. echo "<option value=".$prove['nombre_proveedor'].">".$prov1['nombre_proveedor']."</option>";
  9. }
  10. ?>
  11.  
  12. Tipo de Cami&oacute;n:<input name="txttipo" type="text" id="txttipo"/>
  13. Placas:<input name="txtplaca" type="text" id="txtplaca" size="10" />
  14. </form>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #15 (permalink)  
Antiguo 22/08/2009, 14:43
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

He dejado tal cual el codigo en html.

Pero aun el cad sigue sin recibir nada.
Es probable que no sea la forma correcta de mandar lo que recibe en esta parte:

<select id="cmbproveedor" onchange="peticAjax('prueba2.php',document.getElem entById(this.id).options[document.getElementById(this.id).selectedIndex].value);">

el chiste es que no se cual sea la forma correcta.

Saludos.
  #16 (permalink)  
Antiguo 23/08/2009, 08:11
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Esa manera es correcta. Muestra el HTML del select que se crea

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #17 (permalink)  
Antiguo 23/08/2009, 09:38
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

Si, me refiero a la manera de pasarle el valor al 'cad'.

Gracias.
  #18 (permalink)  
Antiguo 23/08/2009, 12:52
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

El problema ha de estar en la parte PHP. Muestra el HTML que se genera. Ver --> Código Fuente.

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #19 (permalink)  
Antiguo 23/08/2009, 20:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

Nuevamente voy a mandar todo el codigo para que puedas analizarlo un poco mejor.

<html>
<head>
<title>Prueba</title>
<script language="javascript" type="text/javascript">
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();
}
//---
function peticAjax(pagina,cad){ alert(cad);
// var parametro = "proveedor="+cad; alert(parametro);
xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}
xmlhttp.send('proveedor='+escape(cad));
}
</script>
</head>
<body>
<?php
include("../db/coneccion.php");

$sql= ("select nombre_proveedor,extra1,extra2 from proveedores");
$rs=mysql_query($sql,$conectar);
$prov = mysql_fetch_array($rs);
//echo $prov['nombre_proveedor']."::~::".$prov['extra1']."::~::".$prov['extra2'];
?>
<form id="form1" name="form1" method="post" action="">
<select id="cmbproveedor" onChange="peticAjax('prueba2.php',document.getElem entById(this.id).options[document.getElementById(this.id).selectedIndex].value);">
<option value=''>--- Selecc. Proveedor ---</option>
<?php
while($prov1 = mysql_fetch_array($rs)){
echo "<option value=".$prove['nombre_proveedor'].">".$prov1['nombre_proveedor']."</option>";
}
?>
</select>
Tipo de Cami&oacute;n:<input name="txttipo" type="text" id="txttipo">
Placas:<input name="txtplaca" type="text" id="txtplaca" size="10">
</form>
</body>
</html>

Como te puedes dar cuenta tengo algo de codigo comentado, es lo que le he quitado.

Hasta ahora no he encontrado otra forma de hacerlo o bien de modificarlo mas lo que me has dicho.

Gracias.
  #20 (permalink)  
Antiguo 24/08/2009, 06:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Hola

Lo que necesitábamos ver es el HTML que se genera aquí

Código php:
Ver original
  1. <select id="cmbproveedor" onChange="peticAjax('prueba2.php',document.getElem entById(this.id).options[document.getElementById(this.id).selectedIndex].value);">
  2. <option value=''>--- Selecc. Proveedor ---</option>
  3. <?php
  4. while($prov1 = mysql_fetch_array($rs)){
  5. echo "<option value=".$prove['nombre_proveedor'].">".$prov1['nombre_proveedor']."</option>";
  6. }
  7. ?>
  8. </select>

Parece que el error está en esta línea

<option value=".$prove['nombre_proveedor'].">"

que debe de ser

<option value=".$prov1['nombre_proveedor'].">"

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #21 (permalink)  
Antiguo 25/08/2009, 17:20
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Sonrisa Respuesta: Rellenar campos automaticamente...

Si tenias razon, no se como no me di cuenta de ese error antes.

ahora mira cuando coloco el alert aqui:

function peticAjax(pagina,cad){ alert(cad);
xmlhttp.open("POST",pagina,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
resp = xmlhttp.responseText;
registro = resp.split('::~::');alert(resp);
document.getElementById('txttipo').value=registro[1];
document.getElementById('txtplaca').value=registro[2];
}
}
xmlhttp.send('proveedor='+escape(cad));
}

En el primer alerter me manda lo que tiene el cad, pero suponiendo que se llame el tipo Pedro Hernandez Fonseca, unicamente manda al cad Pedro.

Quiza ahora sea por la forma que lo manda.

Ahora bien si le doy aceptar me imprime algo mas en los dos botones, y en el segundo alert confirmo y efectivamente imprime algo raro.

Imprime todo el codigo, lo que esta dentro de la etiqueda
<html> . . . </html>

osea todo.

Saludos
  #22 (permalink)  
Antiguo 26/08/2009, 05:40
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Rellenar campos automaticamente...

Cita:
Iniciado por phpnovato Ver Mensaje
En el primer alerter me manda lo que tiene el cad, pero suponiendo que se llame el tipo Pedro Hernandez Fonseca, unicamente manda al cad Pedro.

Quiza ahora sea por la forma que lo manda.
Creo que el problema está en que argumento no se le está pasando como texto Es decir

Cita:
<select id="cmbproveedor" onChange="peticAjax('prueba2.php','document.getElem entById(this.id).options[document.getElementById(this.id).selectedIndex].value)';">

Cita:
Iniciado por phpnovato Ver Mensaje
Ahora bien si le doy aceptar me imprime algo mas en los dos botones, y en el segundo alert confirmo y efectivamente imprime algo raro.

Imprime todo el codigo, lo que esta dentro de la etiqueda
<html> . . . </html>

osea todo.

Saludos
El problema ha de estar en prueba2. Para saber que estás mandando y recibiendo puedes bajarte una aplicación para FF, el Firebug. Te será bastante útil

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #23 (permalink)  
Antiguo 29/08/2009, 19:00
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

Gracias por la respuesta, lo voy a revizar, una disculpa por contestar hasta ahora, pero tengo algunos problemas familiares.

Revizare lo que me indicas y el lunes por la tarde tendre una respuesta para ver si se ha correjido el problema.

Gracias de nuevo Adler
  #24 (permalink)  
Antiguo 03/09/2009, 13:38
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: Rellenar campos automaticamente...

excelente, justo lo que buscaba, ya lo soluciones fue muy sencillo en realidad... espero que lo haya conseguido tambien, saludos
__________________
Quitenme la vida pero no la bebida.
  #25 (permalink)  
Antiguo 03/09/2009, 20:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 17
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar campos automaticamente...

Hola Buen día.

Hola,si lo resolviste por favor dime cual es la solución.

Ocolocaelcodigo para revisarlo, gracias yo tuve problemas familiares y ahora pues estoy de vuelta y necesito correjirlo, hice lo que me indico Alder pero no me ha funcionado.

Gracias de antemano
  #26 (permalink)  
Antiguo 04/09/2009, 15:31
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: Rellenar campos automaticamente...

Pues no es nada del otro mundo...

*primero, en tu formulario debes tenr tu combo cuyos resultados salen de un query... eso ya lo tienes

Código PHP:
<select name='micombo' id='micombo' onChange="enviaMotivo()">
    <option value='0'>Seleccione...</option>
<?php
while($fila=mysql_fetch_row($q_motivo)){
    echo 
"<option value='".$fila[0]."'>".$fila[1]."</option>";
}
?>
    </select>
*(aqui viene lo de ajax en 2 partes) Lo que debes hacer primero en ajax es recoger el value del combo:

Código:
function enviaMotivo(){
	var c = document.getElementById('motivo_mensaje')
	var motivo = document.frmform.micombo.value;
				
	ajax=creaAjax();
	c.innerHTML = '<img src="images/sending.gif" width="16" height="16" align="absmiddle">';
	ajax.open("POST", "recibe.php",true);
	ajax.onreadystatechange=function(){
		if (ajax.readyState==4 && ajax.status == 200 ) {
			
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("motivo="+motivo+"&control=enviado");
}
*Tercero ... el value del combo (que en este caso es un ID) viaja hasta un script php que lo recibe. En este caso proceso ese ID y saco los datos y como debes saber , envias una respuesta a la resiente funcion ajax, esta respuesta es el conjunto de datos concatenados..:

Código PHP:
echo $dato1."::~::".$dato2."::~::".$dato3."::~::".$dato4
*Por ultimo , vas a agregar a tu funcion ajax lo que habias echo, pero la unica diferencia que he notado en tu script es que debes especificar los inputs que estan en tu formulario... osea document.form.input.value , al final tu funcion debe quedar asi:

Código:
function enviaMotivo(){
	var c = document.getElementById('motivo_mensaje')
	var motivo = document.frmform.micombo.value;
				
	ajax=creaAjax();
	c.innerHTML = '<img src="images/sending.gif" width="16" height="16" align="absmiddle">';
	ajax.open("POST", "recibe.php",true);
	ajax.onreadystatechange=function(){
		if (ajax.readyState==4 && ajax.status == 200 ) {

			var respuesta=ajax.responseText;
			var registro = respuesta.split('::~::');
			document.frmform.txtdato1.value=registro[0];
			document.frmform.txtdato2.value=registro[1];
			document.frmform.txtdato3.value=registro[2];
			document.frmform.txtdato4.value=registro[3];
			c.innerHTML = '';
		}
	}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("motivo="+motivo+"&control=enviado");
}
y eso es todo.... no necesitas mandar una tremenda funcion
__________________
Quitenme la vida pero no la bebida.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:52.