debby87
06-09-2010, 14:39
VI PREGO, abbiate pietà di me, aiutate questa povera ragazza che legge questo codice da ormai 1 settimana giorno e notte! Qualche buon'anima che si offre,sono disposta anche a telafonare se non avete voglia di scrivere! *_*
sto costruendo un'applicazione web in in php e javascript e sono di fronte ad un problemaccio che mi porto dietro da ben una settimana.
è un sito di e-commence e ho a che fare con la pagina FAI ORDINE che funziona in questo modo:
1-inserisci la password
2-inserisci codice articolo
3-quantita
4-PREMI SU AGGIUNGI e dinamicamente viene calcolato il prezzo totale e stampato in un nodo.
5-cliccando su ORDINA parte l'ordine e vorrei visualizzare ancora nella stessa pagina un altro nodo con scritto: CODICE EFFETTUATO CON SUCCESSO! Codice ordine, quantità e prezzo totale.
il problema è questo: quando premo su aggiungi, tutto viene sisualizzato correttamnte, ma nella seconda richiesta di connessione HTTP ( con ORDINA) ciò che visualizzo non è quello che voglio. vi mostro il codice:
.tpl
<input type="button" name="Aggiungi" value="Aggiungi" onClick="prezzo()">
<input type="button" name="Aggiungi2" value="Annulla" onClick="rimuovi()">
..
<label></label>
<p align="center">Descrizione elementi ordinati </p>
......
<input type="button" name="invia" value="Ordina" onClick="ordina()">
function prezzo() {
objHTTP=XMLHttp();
if (objHTTP!=null) {
//apertura della connessione HTTP
codice=document.getElementById("codiceProdotto");
objHTTP.onreadystatechange=aggiungi;
objHTTP.open("GET","GestioneGET.php?menu=prendiPrezzo&codice="+escape(codice.value), true);
objHTTP.send(null);
aggiungi();
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function XMLHttp()
{
var xmlhttp = null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Opera, etc.
xmlhttp=new XMLHttpRequest();
http_request.overrideMimeType('text/xml');
}
else
if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("Your browser does not support XMLHTTP.");
}
return xmlhttp
}
function set(cod,prezz,quan) {
objHTTP = XMLHttp();
//apertura della connessione HTTP
passw=document.getElementById("pass");
objHTTP.open("GET","GestioneGET.php?menu=assegnaOrdine&cod="+escape(cod)+"&prezzo="+escape(prezz)+"&quantita="+escape(quan), true);
objHTTP.send(null);
objHTTP.setRequestHeader("connection", "close");
}
function aggiungi()
{
if (objHTTP.readyState == 4 )
{
if (objHTTP.status == 200)
{
agg(objHTTP.responseText); // funzione funzionante che non vi presento
}
else {
alert('C\' è un problema con la rischiesta.');
}
}
}
function ordina()
{
var l=0;
if (document.formFaiOrdine.pass.value.length == 0)
{
alert("Il campo password deve contenere almeno un carattere");
document.formFaiOrdine.pass.focus();
return;
}
while(l<i)
{
cod=articoli [l];
prezz=prezzi [l];
quan=quantita [l];
set(cod,prezz,quan);
l++;
}
if (confirm("Confermare i dati inseriti ?"))
{
passw=document.getElementById("pass").value;
quantita=document.getElementById("quantita").value;
totale=document.getElementById("totale").value;
objHTTP=new XMLHttpRequest();
if (objHTTP!=null)
{
var params=("menu=formFaiOrdine&pass="+escape(passw)+"&qua="+escape(quantita)+"&totale="+escape(totale));
objHTTP.open("post", "GestionePOST.php", true);
objHTTP.setRequestHeader("content-type", "application/x-www-form-urlencoded");
objHTTP.setRequestHeader("Content-length", params.length);
objHTTP.onreadystatechange=ordeffett(objHTTP, quantita,totale);
objHTTP.send(params);
}
}
}
function ordeffett(objHTTP,quantita,totale) // sembra che non entri qui dentro, forse non
{ //supera la prima if
if (objHTTP.readyState == 4)
{
if (objHTTP.status == 200)
{
cordine=objHTTP.responseText; <-----------
alert(cordine); // non stampa nulla
successo(cordine,quantita,totale);}
}
else {
alert('C\' è un problema con la rischiesta.');
}
}
}
function successo(cordine,quantita,totale)
{
frase = document.createTextNode("ORDINE EFFETTUATO CON SUCCESSO. Codice ordine:"+cordine+"\n quantita:"+quantita+"\n prezzo totale:"+totale);
// poi lo attacchiamo al nodo di riferimento
document.getElementById("content2").appendChild(frase);
}
Sembra che la seconda objHTTP.responseText non venga presa,anzi che mandi in tilt l'intero script. Forse perchè va in conflitto con la prima richiesta di connessione perchè resta aperta?? perchè???? cosa sbaglio????
sto costruendo un'applicazione web in in php e javascript e sono di fronte ad un problemaccio che mi porto dietro da ben una settimana.
è un sito di e-commence e ho a che fare con la pagina FAI ORDINE che funziona in questo modo:
1-inserisci la password
2-inserisci codice articolo
3-quantita
4-PREMI SU AGGIUNGI e dinamicamente viene calcolato il prezzo totale e stampato in un nodo.
5-cliccando su ORDINA parte l'ordine e vorrei visualizzare ancora nella stessa pagina un altro nodo con scritto: CODICE EFFETTUATO CON SUCCESSO! Codice ordine, quantità e prezzo totale.
il problema è questo: quando premo su aggiungi, tutto viene sisualizzato correttamnte, ma nella seconda richiesta di connessione HTTP ( con ORDINA) ciò che visualizzo non è quello che voglio. vi mostro il codice:
.tpl
<input type="button" name="Aggiungi" value="Aggiungi" onClick="prezzo()">
<input type="button" name="Aggiungi2" value="Annulla" onClick="rimuovi()">
..
<label></label>
<p align="center">Descrizione elementi ordinati </p>
......
<input type="button" name="invia" value="Ordina" onClick="ordina()">
function prezzo() {
objHTTP=XMLHttp();
if (objHTTP!=null) {
//apertura della connessione HTTP
codice=document.getElementById("codiceProdotto");
objHTTP.onreadystatechange=aggiungi;
objHTTP.open("GET","GestioneGET.php?menu=prendiPrezzo&codice="+escape(codice.value), true);
objHTTP.send(null);
aggiungi();
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function XMLHttp()
{
var xmlhttp = null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Opera, etc.
xmlhttp=new XMLHttpRequest();
http_request.overrideMimeType('text/xml');
}
else
if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
alert("Your browser does not support XMLHTTP.");
}
return xmlhttp
}
function set(cod,prezz,quan) {
objHTTP = XMLHttp();
//apertura della connessione HTTP
passw=document.getElementById("pass");
objHTTP.open("GET","GestioneGET.php?menu=assegnaOrdine&cod="+escape(cod)+"&prezzo="+escape(prezz)+"&quantita="+escape(quan), true);
objHTTP.send(null);
objHTTP.setRequestHeader("connection", "close");
}
function aggiungi()
{
if (objHTTP.readyState == 4 )
{
if (objHTTP.status == 200)
{
agg(objHTTP.responseText); // funzione funzionante che non vi presento
}
else {
alert('C\' è un problema con la rischiesta.');
}
}
}
function ordina()
{
var l=0;
if (document.formFaiOrdine.pass.value.length == 0)
{
alert("Il campo password deve contenere almeno un carattere");
document.formFaiOrdine.pass.focus();
return;
}
while(l<i)
{
cod=articoli [l];
prezz=prezzi [l];
quan=quantita [l];
set(cod,prezz,quan);
l++;
}
if (confirm("Confermare i dati inseriti ?"))
{
passw=document.getElementById("pass").value;
quantita=document.getElementById("quantita").value;
totale=document.getElementById("totale").value;
objHTTP=new XMLHttpRequest();
if (objHTTP!=null)
{
var params=("menu=formFaiOrdine&pass="+escape(passw)+"&qua="+escape(quantita)+"&totale="+escape(totale));
objHTTP.open("post", "GestionePOST.php", true);
objHTTP.setRequestHeader("content-type", "application/x-www-form-urlencoded");
objHTTP.setRequestHeader("Content-length", params.length);
objHTTP.onreadystatechange=ordeffett(objHTTP, quantita,totale);
objHTTP.send(params);
}
}
}
function ordeffett(objHTTP,quantita,totale) // sembra che non entri qui dentro, forse non
{ //supera la prima if
if (objHTTP.readyState == 4)
{
if (objHTTP.status == 200)
{
cordine=objHTTP.responseText; <-----------
alert(cordine); // non stampa nulla
successo(cordine,quantita,totale);}
}
else {
alert('C\' è un problema con la rischiesta.');
}
}
}
function successo(cordine,quantita,totale)
{
frase = document.createTextNode("ORDINE EFFETTUATO CON SUCCESSO. Codice ordine:"+cordine+"\n quantita:"+quantita+"\n prezzo totale:"+totale);
// poi lo attacchiamo al nodo di riferimento
document.getElementById("content2").appendChild(frase);
}
Sembra che la seconda objHTTP.responseText non venga presa,anzi che mandi in tilt l'intero script. Forse perchè va in conflitto con la prima richiesta di connessione perchè resta aperta?? perchè???? cosa sbaglio????