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

formularios dinámicos con ajax y php

Estas en el tema de formularios dinámicos con ajax y php en el foro de Frameworks JS en Foros del Web. Hola a todos Tengo un grave problema, tengo un formulario que maneja producto (P), Categoria (C), Subcategoria (subp) y cantidad (A), y como es un ...
  #1 (permalink)  
Antiguo 01/04/2009, 08:41
 
Fecha de Ingreso: febrero-2008
Mensajes: 21
Antigüedad: 16 años, 9 meses
Puntos: 0
formularios dinámicos con ajax y php

Hola a todos

Tengo un grave problema, tengo un formulario que maneja producto (P), Categoria (C), Subcategoria (subp) y cantidad (A), y como es un catalogo de productos puede tener multiples forms o uno solo, cuando le doy click al boton de agregar, el ajax me recibe lo que le envio por valor a la funcion, pero cuando hago el document.getElementByID no obtiene el real seleccionado, sino el anterior que tenia, es decir, no importa en que articulo este, siempre será la misma subcategoria... dejen les pongo los codigos:

Primero del catalogo donde llamo al Ajax:

<?
while (!$rsRes->EOF) {
$IDC = $rsRes->fields["Producto"];

$sSQL = "SELECT * FROM Productos WHERE ID=$IDC";

$rsProd = $DB->Execute($sSQL);

if (!$rsProd->EOF) {
$Titulo = $rsProd->fields["Titulo"];
$Foto = $rsProd->fields["Foto"];
$Descripcion = $rsProd->fields["Descripcion"];
$Precio = $rsProd->fields["Precio"];
$IDP = $rsProd->fields["ID"];
$SKUPadre = $rsProd->fields["SKUPadre"];
$SKU = $rsProd->fields["SKU"];
if ($SKUPadre == "") {
?>
<tr>
<td>
<form method="post" name="frmArt<?=$IDP?>">
<table align="center" width="100%" class="caja">
<tr>
<td colspan="2" class="titulo_busca"><div align="center"><?=$Titulo?></div></td>
</tr>
<tr>
<td colspan="2" class="titulo_busca"> </td>
</tr>
<tr>
<td width="30%" class="titulo_busca"><div align="center"><img src="img/productos/<?=$Foto?>" width="180" height="135" border="0"><br /><div align="center" class="titulomain">$<?=number_format($Precio, 2, ".", ",")?></div></div></td>
<td width="70%" class="titulo_busca"><div align="justify"><span class="titulo_carrito"><?=$Descripcion?></span><br>
<br>
<table width="200" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#ADD8E6" class="caja">
<?php
$sSQL = "SELECT * FROM Productos WHERE SKUPadre = '$SKU'";

$rsSub = $DB->Execute($sSQL);

if (!$rsSub->EOF) {
?>
<tr>
<td bgcolor="#ADD8E6"><span class="titulomain">Por favor, seleccione un artículo:</span></td>
</tr>
<tr>
<td bgcolor="#ADD8E6" ><select name="subp" id="subp">
<?php while (!$rsSub->EOF) {
$IDS = $rsSub->fields["ID"];
$Titulo = $rsSub->fields["Titulo"];
?>
<option value="<?=$IDS?>"><?=$Titulo?></option>
<?php
$rsSub->MoveNext();
}
?>
</select></td>
</tr>
<?php } else {?>
<tr>
<td>
<select name="subp" id="subp">
<option value="0" selected> </option>
</select>
</td>
</tr>
<? } ?>
<tr>
<td valign="top" bgcolor="#ADD8E6"><div class="titulomain">
<div align="center">Cantidad:
<input name="Cantidad" type="text" id="Cantidad" value="1" size="5"><br />
<input name="agregar" type="button" id="agregar" value="agregar" onClick="showProd(<?=$IDP?>,<?=$C?>, this.options[this.selectedindex].value);" src="fimages/boton_agregar.jpg">
</div>
</div></td>
</tr>
</table>
<br>
</div></td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td class="titulo_busca"> </td>
</tr>
<?
}
}
$rsRes->MoveNext();
}
?>

Como ven, aqui solamente genero un catalogo con multiples forms, donde si existen subcategorias me hace un select y si no, lo hace vacio, esto lo puse para ver si el error se corregia... ahora el ajax que recibe es este:

// JavaScript Document

// Inicia codigo Ajax
var xmlHttp

function GetXmlHttpObject() {
var xmlHttp=null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}

function showProd(IDP, C){
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null) {
alert ("Su navegador no soporta AJAX, actualicelo para poder comprar.!");
return;
}
var url="agregaprod.php";
url = url + "?P=" + IDP;
url = url + "&C=" + C;
url = url + "&A=" + document.getElementById('Cantidad').value + "&S=" + document.getElementById('subp').value + "&sid="+Math.random();
alert(url);
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged() {
if (xmlHttp.readyState == 1) {
var ss = document.getElementById('minicarrito')
ss.innerHTML = '';
var suggest = '<div id="minicarrito" class="titulo_carrito"><br /> Agregando producto...</div>';
ss.innerHTML += suggest;
}
if (xmlHttp.readyState == 2) {
var ss = document.getElementById('minicarrito')
ss.innerHTML = '';
var suggest = '<div id="minicarrito class="titulo_carrito""><br /> Agregando producto...</div>';
ss.innerHTML += suggest;
}
if (xmlHttp.readyState == 3) {
var ss = document.getElementById('minicarrito')
ss.innerHTML = '';
var suggest = '<div id="minicarrito" class="titulo_carrito"><br /> Agregando producto...</div>';
ss.innerHTML += suggest;
}
if (xmlHttp.readyState == 4) {
var ss = document.getElementById('minicarrito')
ss.innerHTML = '';
var str1 = xmlHttp.responseText;
var suggest = '<div id="minicarrito" class="titulo_carrito">' + str1 + '</div>';
ss.innerHTML += suggest;
}
}

bueno, pues el alert me devuelve datos ilogicos...

Ya no le encuentro el error y recurro a ustedes para ver si me pueden ayudar...

Les agradezco mucho,
Bruno Chávez
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 18:40.