Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2010, 19:13
MAPA20
 
Fecha de Ingreso: febrero-2010
Mensajes: 11
Antigüedad: 14 años, 9 meses
Puntos: 0
Problemas con 2 forms y Ajax en PHP

Estimado amigos tengo el siguiente problema veran tengo una pagina php 2 forms el 1er form hace una peticion ajax y un archivo php, obtengo en 5 divs lo que requiero sin problemas, ahora mas abajo de la pagina php con el 2do form hago otra peticion con ajax a otro archivo php y requiero en otro div la respuesta que tomo un text del primer div como dato y obtengo todos los datos de la primera peticion ajax. Es decir se repite en el div los valores de la 1ra peticion.


<script type="text/javascript"src="Scripts/zxml.js"></script>
<script type="text/javascript"src="ajaxventaActual.js"></script>
<script type="text/javascript" src="ajaxvenCam.js"></script>
<form name="envia" id="envia" method="POST" action="ingVentaCamara.php" onsubmit="sendRequest(this.form); return false">

con este form hago la primera peticion.

<input name="Solicitud" type="text" id="Solicitud" accesskey="S" tabindex="1" size="10" maxlength="10" />

<input name="Confirma" type="submit" class="textoc" id="Confirma" accesskey="c" value="Ok." />

</form>
<div id="divStatus"></div>

ahora el 2do form

<form name="genera" id="genera" method="POST" action="actualValor.php" onsubmit="devuelveValor(this.form); return false">

inputs donde pongo valores nuevos....

<td height="20" class="textoc"><input name="SolicitudA" type="hidden" id="Sol" value="document.envia.Solicitud.value" onkeyup="envia.Solicitud.value=genera.SolicitudA.v alue"/></td>

<input name="button" type="submit" class="textoc" id="button" accesskey="C" tabindex="6" value="Confirmar" onclick="document.genera.SolicitudA.value=
document.envia.Solicitud.value"/>

con esto obtengo el valor del Text del 1er form y hago la 2da peticion

</form>
<div id="ValStatus"></div>
y termino aqui


ahora el codigo ajax de ajaxventaActual.js

function devuelveValor() {
var aForm = document.forms[0];
var sBody = getRequestBody(aForm);

var aXHR = zXmlHttp.createRequest();
aXHR.open("post", aForm.action, true);
aXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

aXHR.onreadystatechange = function () {
if (aXHR.readyState == 4) {
if (aXHR.status == 200) {
//saveResult(oXHR.responseText);
var ValStatus = document.getElementById("ValStatus");
var ValFinal = document.getElementById("ValFinal");
var valores = aXHR.responseText;
//var resfinal = resultA.split('--');
ValStatus.value=valores;
ValStatus.innerHTML = "Se Crearon los valores Correctamente i:";
ValFinal.innerHTML = valores;
} else {
saveResult("ha Ocurrido un Error: " + aXHR.statusText);
}
}
};
aXHR.send(sBody);
}

//("document.getElementById("mydiv").innerHTML = ''").

function encodeNameAndValue(sName, sValue) {
var sParam = encodeURIComponent(sName);
sParam += "=";
sParam += encodeURIComponent(sValue);
return sParam;
}

function getRequestBody(aForm) {

//array to hold the params
var aParams = new Array();

//get your reference to the form
var aForm = document.forms[0];

//iterate over each element in the form
for (var i=0 ; i < aForm.elements.length; i++) {

//get reference to the field
var aField = aForm.elements[i];

//different behavior based on the type of field
switch (aField.type) {

//buttons - we don't care
case "button":
case "submit":
case "reset":
break;

//checkboxes/radio buttons - only return the value if the control is checked.
case "checkbox":
case "radio":
if (!aField.checked) {
break;
} //End: if

//text/hidden/password all return the value
case "text":
case "hidden":
case "password":
aParams.push(encodeNameAndValue(aField.name, aField.value));
break;

//everything else
default:

switch(aField.tagName.toLowerCase()) {
case "select":
aParams.push(encodeNameAndValue(aField.name, aField.options[aField.selectedIndex].value));
break;
default:
aParams.push(encodeNameAndValue(aField.name, aField.value));
}
}

}

return aParams.join("&");
}


ahora el codigo ajax de ajaxvenCam.js

function sendRequest() {
var oForm = document.forms[0];
var sBody = getRequestBody(oForm);

var oXHR = zXmlHttp.createRequest();
oXHR.open("post", oForm.action, true);
oXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

oXHR.onreadystatechange = function () {
if (oXHR.readyState == 4) {
if (oXHR.status == 200) {
//saveResult(oXHR.responseText);
var divStatus = document.getElementById("divStatus");
var divAg=document.getElementById("divAg");
var divFSol = document.getElementById("divFSol");
var divCant = document.getElementById("divCant");
var divTipo = document.getElementById("divTipo");
var divFormPag=document.getElementById("divFormPag");
var divTotal = document.getElementById("divTotal");
var resultado = oXHR.responseText;
var result=resultado.split(';');
//divStatus.value=result[0];
//divAg.value=result[1];
//divCant.value=result[2];
//divTipo.value=result[3];
//divFormPag.value=result[4];
divStatus.innerHTML = "Transaccion se completo correctamente";
divAg.innerHTML = result[1];
divFSol.innerHTML = result[2];
divCant.innerHTML = result[3];
divFormPag.innerHTML = result[5];
divTipo.innerHTML = result[4];
divTotal.innerHTML = result[6];

} else {
saveResult("ha Ocurrido un Error: " + oXHR.statusText);
}
}
};
oXHR.send(sBody);
}


function encodeNameAndValue(sName, sValue) {
var sParam = encodeURIComponent(sName);
sParam += "=";
sParam += encodeURIComponent(sValue);
return sParam;
}

function getRequestBody(oForm) {

//array to hold the params
var aParams = new Array();

//get your reference to the form
var oForm = document.forms[0];

//iterate over each element in the form
for (var i=0 ; i < oForm.elements.length; i++) {

//get reference to the field
var oField = oForm.elements[i];

//different behavior based on the type of field
switch (oField.type) {

//buttons - we don't care
case "button":
case "submit":
case "reset":
break;

//checkboxes/radio buttons - only return the value if the control is checked.
case "checkbox":
case "radio":
if (!oField.checked) {
break;
} //End: if

//text/hidden/password all return the value
case "text":
case "hidden":
case "password":
aParams.push(encodeNameAndValue(oField.name, oField.value));
break;

//everything else
default:

switch(oField.tagName.toLowerCase()) {
case "select":
aParams.push(encodeNameAndValue(oField.name, oField.options[oField.selectedIndex].value));
break;
default:
aParams.push(encodeNameAndValue(oField.name, oField.value));
}
}

}

return aParams.join("&");
}


y no se donde esta mal la cosa que me tiene hace tiempo que no lo resuelvo por que se repite como les digo los datos de la primera peticion. Ha con los archivos Php los he revisado y creo que no tengo problemas si es necesario para que lo entiendan me avisan y los pongo tambien
Gracias de antemano