Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di bobonzo
    Registrato dal
    Jul 2000
    Messaggi
    495

    aiuto con cookie per carrello

    salve, vorrei utilizzare un semplice carrello in js che utilizza i cookies.
    crea un cookie del tipo:
    document.cookie = 'Lampade=#@'+codice+'@'+prezzo+'@'+quant+'##';

    il problema è che se creo il cookie nella cartella www.dominio.it/banane/ il cookie vale solo per quella cartella.
    dunque quando apro il file carrello.htm è sempre vuoto perchè questo si trova nella root.
    la domanda è: nello script che posto qui sotto come faccio a lavorare con un cookie che valga per la root e ttte le sottocartelle?
    grazie

    qui ci sono gli articoli
    codice:
    <script language="javascript">
    
    var numprod=0;
    
    function vedicarrello() {
    window.open('carrello.htm','Popup_Window','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=760,height=350');
    }
    
    function primavolta(codice, prezzo, quant) {
    document.cookie = 'Lampade=#@'+codice+'@'+prezzo+'@'+quant+'##';
    }
    
    function cancella() {
    document.cookie = "Lampade=0";
    }
    
    function aggiungi2(codice, prezzo, quant) {
    var sost=0;
    var sostflag=0;
    var subpuntatore=0;
    var string=document.cookie;
    var puntatore=string.lastIndexOf("Lampade=#");
    var lung=string.indexOf("##");
    if (puntatore == -1) primavolta(codice, prezzo, quant);
    	else {
    	var newstring="Lampade=#";
    	while (puntatore<=lung) {
    		sost=0;
    		if (string.charAt(puntatore) == "@") {
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			if (string.substring(subpuntatore, puntatore) == codice) sost=1;
    			newstring+="@"+string.substring(subpuntatore, puntatore);
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			newstring+="@"+string.substring(subpuntatore, puntatore);
    			puntatore++;
    			subpuntatore=puntatore;
    			while ((string.charAt(puntatore) != "@") && (string.charAt(puntatore) != "#")) puntatore++;
    			if (sost == 1) {
    				var somma=parseInt(quant);
    				somma+=parseInt(string.substring(subpuntatore, puntatore));
    				if (somma > 999) somma=999;
    				newstring+="@"+somma;
    				sost=0;
    				sostflag=1;
    				}
    			else newstring+="@"+string.substring(subpuntatore, puntatore);
    			puntatore--;
    			}
    		puntatore++;
    		}
    	if (sostflag == 1) newstring+="##";
    		else newstring=string.substring(0,lung)+"@"+codice+"@"+prezzo+"@"+quant+"##";			
    	}
    document.cookie=newstring;	
    }
    
    function aggiungi(codice, prezzo) {
    var quant=prompt("Inserire la quantità che si desidera aquistare",1);
    if ((isNaN(quant)) || (quant<1) || (quant>999)) alert("Valore non valido");
    	else {
    	if (document.cookie.length > 0) aggiungi2(codice, prezzo, quant);
    		else primavolta(codice, prezzo, quant);
    		}
    }
    
    </script>
    
    Aggiungi 
    questo è il carrello
    codice:
    <script language="javascript">
    function deleteart(nomearticolo) {
    var deletearticle=0;
    var sostflag=0;
    var subpuntatore=0;
    var string=document.cookie;
    var puntatore=string.lastIndexOf("Lampade=#");
    var lung=string.indexOf("##");
    var newstring="Lampade=#";
    	while (puntatore<=lung) {
        		deletearticle=0;
    		if (string.charAt(puntatore) == "@") {
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			if (string.substring(subpuntatore, puntatore) == nomearticolo) deletearticle=1;
    			if (deletearticle==0) newstring+="@"+string.substring(subpuntatore, puntatore);
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			if (deletearticle==0) newstring+="@"+string.substring(subpuntatore, puntatore);
    			puntatore++;
    			subpuntatore=puntatore;
    			while ((string.charAt(puntatore) != "@") && (string.charAt(puntatore) != "#"))puntatore++;
    			if (deletearticle==0) newstring+="@"+string.substring(subpuntatore, puntatore);
    			puntatore--;
    			}
    		puntatore++;
    		}
    newstring+="##";
    
    puntatore=newstring.lastIndexOf("@");
    if (puntatore != -1) document.cookie=newstring;
    else document.cookie = "Lampade=0";
    location.href="carrello.htm";	
    
    }
    
    function chiudi() {
    close();
    }
    
    function punteggiatura(num) {
    	retval =""+num;
    	if (retval < 100) {
    							retval="0,"+retval;
    							 	while (retval.length < 10){ 
                            	retval =" "+retval 
    									}
    								}
    	if ((retval <= 99999) && (retval >= 100)) {
    								temp1 = retval.substring(0,retval.length-2);
    								temp2 = retval.substring(retval.length-2,retval.length+1);
                           		retval =temp1+","+temp2;
    								while (retval.length < 10){ 
                            	retval =" "+retval 
    									}
    								}
    	if(retval >= 100000) {
    								temp1 = retval.substring(0,retval.length-5);
    								temp2 = retval.substring(retval.length-5,retval.length-2);
    								temp3 = retval.substring(retval.length-2,retval.length+1);
    								retval=temp1+"."+temp2+","+temp3;
    								while (retval.length < 10){ 
                            	retval =" "+retval 
    									}
    								}
    return retval;
    }
    
    document.write('<div align="center"> <center>');
    document.write("Contenuto del carrello:
    
    ");
    var quant=0;
    var prezzo=0;
    var totale=0;
    var string=document.cookie;
    var puntatore=string.lastIndexOf("Lampade=#");
    var lung=string.indexOf("##");
    if (puntatore == -1) document.write('
    Il carrello è vuoto');
    	else {
    	document.write('<table border="1" cellspacing="1">');
    	document.write('<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">Articolo</font></td>');
    	document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Prezzo</font></td>');
    	document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Quantità</font></td>');
    	document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Totale</font></td>');
    	document.write('<td align="right"></td></tr>');
    	while (puntatore<=lung) {
    		if (string.charAt(puntatore) == "@") {
    			document.write('<tr>');
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			nomearticolo=string.substring(subpuntatore, puntatore);
    			document.write('<td align="left"><font face="Verdana, Arial, Helvetica, sans-serif"> '+string.substring(subpuntatore, puntatore)+'</font></td>');
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			prezzo=parseFloat(string.substring(subpuntatore, puntatore));
    			document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">&euro;'+punteggiatura(parseInt(prezzo*100))+'</font></td>');
    			puntatore++;
    			subpuntatore=puntatore;
    			while ((string.charAt(puntatore) != "@") && (string.charAt(puntatore) != "#")) puntatore++;
    			quant=parseInt(string.substring(subpuntatore, puntatore));
    			document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">'+quant+'</font></td>');
    			totale+=parseInt(prezzo*quant*100);
    			document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">&euro;'+punteggiatura(parseInt(prezzo*quant*100))+'</font></td>');
    			document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Cancella</font></td>');
    			puntatore--;
    			document.write('</tr>');
    			}
    		puntatore++;
    		}
    	document.write('<tr>');
    	document.write('<td colspan="3" align="right"></td>');
    	document.write('<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Totale: &euro;'+punteggiatura(totale)+'</font></td>');
    	document.write('</tr> </table> </center> </div>');
    	}
    document.write('<p align="center"><input type="button" value="Chiudi" name="B3" onClick="chiudi()"></p>');
    </script>

  2. #2
    Utente di HTML.it L'avatar di bobonzo
    Registrato dal
    Jul 2000
    Messaggi
    495
    e questo il modulo di invio
    codice:
    <script language="javascript">
    
    function punteggiatura(num) {
    	retval =""+num;
    	if (retval < 100) {
    							retval="0,"+retval;
    							 	while (retval.length < 10){ 
                            	retval =" "+retval 
    									}
    								}
    	if ((retval <= 99999) && (retval >= 100)) {
    								temp1 = retval.substring(0,retval.length-2);
    								temp2 = retval.substring(retval.length-2,retval.length+1);
                           		retval =temp1+","+temp2;
    								while (retval.length < 10){ 
                            	retval =" "+retval 
    									}
    								}
    	if(retval >= 100000) {
    								temp1 = retval.substring(0,retval.length-5);
    								temp2 = retval.substring(retval.length-5,retval.length-2);
    								temp3 = retval.substring(retval.length-2,retval.length+1);
    								retval=temp1+"."+temp2+","+temp3;
    								while (retval.length < 10){ 
                            	retval =" "+retval 
    									}
    								}
    return retval;
    }
    
    function update(form) {
    	var Prezzoup=0;
    	var Qt=0;
    	var Sub=0;
    	var SubTotale=0;
    	for (i=1; i<=cont; i++) {
    		Prezzoup=eval("form.Prezzo"+i+".value");
    		Qt=eval("form.Quant"+i+".value");
    		if (isNaN(Qt) || (Qt<0) || (Qt=="")) {Qt=1;
    		                eval("form.Quant"+i+".value=1");}
    		if (Qt>999) {Qt=999;
    					   eval("form.Quant"+i+".value=999");}
    		Sub=(parseInt(Prezzoup*100))*(parseInt(Qt));
    		SubTotale+=Sub;
    		eval("form.Totale"+i+".value=punteggiatura(Sub)");
    	}
    	var indice=form.Trasporti.selectedIndex;
    	Prezzoup=parseInt(form.Trasporti.options[indice].value)*100;
    	form.TotaleTrasporti.value=punteggiatura(Prezzoup);
    	SubTotale+=parseInt(Prezzoup);
    	form.TotaleFinale.value=punteggiatura(SubTotale);
    }
    
    function errore(campo) {
    alert("Il campo "+campo+" è vuoto");
    }
    
    function controllo(form) {
    var err=0;
    if (form.Email.value=="") err="Email";
    if (form.Nazione.value=="") err="Nazione";
    if (form.CAP.value=="") err="CAP";
    if (form.Provincia.value=="") err="Provincia";
    if (form.Comune.value=="") err="Comune";
    if (form.Indirizzo.value=="") err="Indirizzo";
    if (form.Societa.value=="") err="Società";
    if (form.Cognome.value=="") err="Cognome";
    if (form.Nome.value=="") err="Nome";
    if (err==0) Ordine.submit();
    else errore(err);
    }
    
    document.write('<p align="center">Modulo d\'ordine</p>');
    
    
    var quantit=0;
    var prezzo=0;
    var totale=0;
    var cont=0;
    var stop=0;
    var string=document.cookie;
    var puntatore=string.lastIndexOf("Lampade=#");
    var lung=string.indexOf("##");
    if (puntatore == -1) {document.write('
    <center>Il carrello è vuoto</center>'); stop=1;}
    	else {
    	document.write('
    <center>Tutti i campi sono obbligatori.
    E\' possibile cambiare la quantità degli articoli.
    Per eliminare un articolo immettere il valore \"0\".</center>
    ')
    	document.write('<form method="POST" name="Ordine" action="http://www.miosito.com/cgi-bin/prova.cgi">');
    	document.write('<div align="center"> <center>');
    	document.write('<table border="1" cellspacing="1"> <tr>');
    	document.write('<td align="right">Nome</td>');
    	document.write('<td><input type="text" name="Nome" size="20" tabindex="1"></td> </tr>');
    	document.write('<tr> <td align="right">Cognome</td>');
    	document.write('<td><input type="text" name="Cognome" size="20" tabindex="2"></td></tr>');
    	document.write('<tr> <td align="right">Società</td>');
    	document.write('<td><input type="text" name="Societa" size="20" tabindex="3"></td></tr>');
    	document.write('<tr><td align="right">Indirizzo</td>');
    	document.write('<td><input type="text" name="Indirizzo" size="30" tabindex="4"></td></tr>');
    	document.write('<tr><td align="right">Comune e provincia</td>');
    	document.write('<td><input type="text" name="Comune" size="20" tabindex="5"><input type="text" name="Provincia" size="4" tabindex="6" maxlength="2"></td></tr>');
    	document.write('<tr><td align="right">CAP</td>');
    	document.write('<td><input type="text" name="CAP" size="7" tabindex="7" maxlength="5"></td></tr>');
    	document.write('<tr><td align="right">Nazione</td>');
    	document.write('<td><input type="text" name="Nazione" size="20" tabindex="8"></td></tr>');
    	document.write('<tr><td align="right">E-mail</td>');
    	document.write('<td><input type="text" name="Email" size="20" tabindex="9"></td></tr>');
    	document.write('</table></center></div>');
    	document.write('<div align="center"><center><table border="1" cellspacing="1">');
    	while (puntatore<=lung) {
    		if (string.charAt(puntatore) == "@") {
    			cont++;
    			document.write('<tr><td align="right">Articolo</td>');
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			document.write('<td align="right"><input type="text" name="Articolo'+cont+'" size="20"');
    			document.write('value="'+string.substring(subpuntatore, puntatore)+'" onFocus="this.blur()">');
    			puntatore++;
    			subpuntatore=puntatore;
    			while (string.charAt(puntatore) != "@") puntatore++;
    			prezzo=parseFloat(string.substring(subpuntatore, puntatore));
    			document.write('<input type="hidden" name="Prezzo'+cont+'" value="'+prezzo+'"></td>');
    			puntatore++;
    			subpuntatore=puntatore;
    			while ((string.charAt(puntatore) != "@") && (string.charAt(puntatore) != "#")) puntatore++;
    			quantit=parseInt(string.substring(subpuntatore, puntatore));
    			document.write('<td align="right">Quantità</td>');
    			document.write('<td align="right"><input type="text" name="Quant'+cont+'" size="5" ');
    			document.write('value="'+quantit+'" onChange="update(this.form)" maxlength="3"></td>');
    			totale+=parseInt(prezzo*quantit*100);
    			document.write('<td align="right">Totale</td>');
    			document.write('<td align="right">&euro;<input type="text" name="Totale'+cont+'" size="12" ');
    			document.write('value="'+punteggiatura(parseInt(prezzo*quantit*100))+'" style="text-align: right" onFocus="this.blur()"></td>');
    			puntatore--;
    			document.write('</tr>');
    			}
    		puntatore++;
    		}
    }
    totale+=1052; //prezzo delle spese di spedizione di default (10,52*100)
    if (stop != 1) {
    	document.write('<tr><td align="right">Spedizione</td>');
    	document.write('<td align="right"><select size="1" name="Trasporti" onChange="update(this.form)">');
    	document.write('<option selected value="10,52">Italia</option>');
    	document.write('<option value="20,41">Europa</option>');
    	document.write('<option value="30,85">Asia</option>');
    	document.write('<option value="54,23">America</option>');
    	document.write('</select></td><td colspan="2" align="right"></td>');
    	document.write('<td align="right">Totale</td>');
    	document.write('<td align="right">&euro;<input type="text" name="TotaleTrasporti" size="12" value="'+punteggiatura(1052)+'" style="text-align: right" onFocus="this.blur()"></td>');
    	document.write('</tr><tr><td colspan="4" align="right"></td>');
    	document.write('<td align="right">Totale</td>');
    	document.write('<td align="right">&euro;<input type="text" name="TotaleFinale" size="12" value="'+punteggiatura(totale)+'" style="text-align: right" onFocus="this.blur()"></td>');
    	document.write('</tr></table></center></div>');
    	document.write('<p align="center"><input type="button" value="Invia" name="B1" tabindex="10" onClick="controllo(this.form)">');
    	document.write('<input type="reset" value="Reimposta" name="B2" tabindex=11"></p>');
    }
    	
    document.write('</form>');
    
    </script>
    non so davvero dove mettere mani
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.