Ver Mensaje Individual
  #26 (permalink)  
Antiguo 04/09/2009, 15:31
Avatar de cesarpunk
cesarpunk
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 10 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.