Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2010, 10:54
rbczgz
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Como cambiar los valores de 3 campos en función de lo que se selecciona en un select

Hola amig@s!

Hacía mucho tiempo que no posteaba nada, pero ahora necesito ayuda con una cosa muy sencilla para los expertos pero que para mi es un mundo porque no tengo ni idea de AJAX, es lo siguiente:

Basándome en un post que he encontrado estoy intentando completar el valor de 3 campos dependiendo de lo que se elija en el select, pero me carga todos los datos en dos de los 3 campos y ninguno en el tercero.

Copio aquí los códigos:

ajax.js

Código:
<!--
// devuelve un objeto XMLHttpRequest para varios navegadores
function AJAX() {
	try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
		try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (ee) {xmlhttp = false;}
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;}
	}
	if (!xmlhttp && window.createRequest) {
		try {xmlhttp = window.createRequest();} catch (e) {xmlhttp = false;}
	}
	if (!xmlhttp) {
		alert("Tu navegador no soporta el objecto XMLHttpRequest.");
	}
	return xmlhttp;
}

var alCambiarLaLista = function(item1,item2,item3) {
   // obtenemos un objeto XMLHttpRequest en la variable ajax	
   var ajax = new AJAX();
   // Construimos la petición a ajax.php con el valor seleccionado del select como parámetro
   ajax.open("GET","ajax.php?palabra=" + item1.value,true);
   // Cambió el estado de la petición
   ajax.onreadystatechange = function() {
      // Si completada la petición
      if (ajax.readyState == 4) {
         // Si la respuesta es 200 OK
         if (ajax.status == 200) {
            document.getElementById("NroItem").value = ajax.responseText;
            document.getElementById("PrecioItem").value = ajax.responseText;
            document.getElementById("NombreItem").value = ajax.responseText;
         }
      }
   }
   // Ejecutamos la petición
   ajax.send(null);
}
//-->
ajax.php

Código:
<?
    if ($_GET['palabra'] == "Anuncio Simple") {
    	echo $NroItem = 1001;
    	echo $PrecioItem = 800;
    	}
    if ($_GET['palabra'] == "Anuncio Doble") {
    	echo $NroItem = 1002;
    	echo $PrecioItem = 1600;
    	}
    if ($_GET['palabra'] == "Anuncio Triple") {
    	echo $NroItem = 1003;
    	echo $PrecioItem = 2400;
    	}
    if ($_GET['palabra'] == "Anuncio Cuadruple") {
    	echo $NroItem = 1004;
    	echo $PrecioItem = 3200;
    	}
    if ($_GET['palabra'] == "Anuncio Quintuple") {
    	echo $NroItem = 1005;
    	echo $PrecioItem = 4000;
    	}
 
?>
y por último, la que debería mostrar todo, test.php

Código:
<script type="text/javascript" src="ajax.js"></script>
<form>
<select id="NombreItem" onchange="alCambiarLaLista(this)">
<option value=''><- Selecciona-></option>
<option value='Anuncio Simple'>Anuncio Simple</option>
<option value='Anuncio Doble'>Anuncio Doble</option>
<option value='Anuncio Triple'>Anuncio Triple</option>
<option value='Anuncio Cuadruple'>Anuncio Cuadruple</option>
<option value='Anuncio Quintuple'>Anuncio Quintuple</option>
</select>
<input type='text' id='NroItem' size='5' name='NroItem'>
<input type='text' id='NombreItem' size='10' name='NombreItem'>
<input type='text' id='PrecioItem' size='5' name='PrecioItem'>
<br>
<input type='submit' name='submit' value='Comprar'>
</form>
A ver si algún alma caritativa me puede echar una mano, más que nada en explicarme por qué no me funciona.

Muchas gracias.