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.