Newsgroup: it.comp.lang.javascript
Titolo: Un Aiuto per universitarie!!!

Uhmm e' un bel po' ingarbugliato... oltremodo Il mio guardafuori espresso, v
5.0 ha contribuito con andate a capo inopportune.
Cmq se pubblichi due righe su come dovrebbe funzionare il tutto ti saro'
grato... e anche saracinesco.
--
La Forza dei Forti sta nell'Attraversare le Traversie con occhio sereno.
(Paperinik)
Nettuno

... sorry ho postato quello vecchio, lo posto aggiornato!!
, quello che fa è:
prende i valori da un array di array di array di array,
... era il periodo che mi piacevano gli Array (ndr) :)
con una struttura tipo: l'array contiene:
array di categorie le quali contengono a sua volta un array
con
index=0 il nome della categoria, indi gli altri index con
array di prodotti contenenti ciascuno:
nome_prodotto,
un campo libero(non mi ricordo cosa volevo mettere),
un riferimento ad una immagine del prodotto,
una descrizione del prodotto,
il prezzo del prodotto...
il resto dello script
non fa altro che :
Una volta selezionata una categoria, visualizza i prodotti
di quella categoria.
Se si seleziona un prodotto, visualizza le caratteristiche
la foto ecc, del prodotto.
Se si acquista il prodotto(aggiunge al cestino), porta il
prodotto nel riepilogativo
degli acquisti, con possibilità in ogni momento di variare
la quantità e se a quantità
0 cancellare l'acquisto..
...
<html>
<script language="javascript">
var Bvers=parseInt(navigator.appVersion.charAt(0));
var IE=(navigator.appName.indexOf('Microsoft')>=0);
var N=(navigator.appName.indexOf('Netscape')>=0);
var IE4up= IE && Bvers>3
var N3up= N && Bvers>2
var N4up= N && Bvers>3
var Dati_Prodotti=new
Array(Array(Array(false,false,false,false,false)));
var Carrello_Ary=new Array();
function Set_Categorie(id_set_cat){
if(!id_set_cat)id_set_cat=0;
for(x=0;x<document.forms['Seleziona_Prodotti'].Categoria.opt
ions.length;x++)
document.forms['Seleziona_Prodotti'].Categoria.options[x]=nu
ll;
 for(x=0;x<Dati_Prodotti.length;x++)
document.forms['Seleziona_Prodotti'].Categoria.options[x]=ne
w Option(Dati_Prodotti[x][0],"");
document.forms['Seleziona_Prodotti'].Categoria.selectedIndex
=id_set_cat;
 Set_Prodotti();
}
function Set_Prodotti(id_set_pro){
if(!id_set_pro)id_set_pro=0;
id_set_cat=document.forms['Seleziona_Prodotti'].Categoria.se
lectedIndex;
for(x=0;x<document.forms['Seleziona_Prodotti'].elements['Pro
dotti'].options.length;x++)
document.forms['Seleziona_Prodotti'].elements['Prodotti'].op
tions[x]=null;
 for(x=1;x<Dati_Prodotti[id_set_cat].length;x++)
document.forms['Seleziona_Prodotti'].elements['Prodotti'].op
tions[x-1]=new
Option("("+(Dati_Prodotti[id_set_cat][x][1]?Dati_Prodotti[id
_set_cat][x][1]:0)+")"+Dati_Prodotti[id_set_cat][x][0],Dati_
Prodotti[id_set_cat][x][1]);
document.forms['Seleziona_Prodotti'].Prodotti.selectedIndex=
id_set_pro;
 Set_Prodotti_Campi();
}
function Set_Prodotti_Campi(){
id_set_cat=document.forms['Seleziona_Prodotti'].Categoria.se
lectedIndex;
id_set_pro=document.forms['Seleziona_Prodotti'].Prodotti.sel
ectedIndex+1;
document.images['FotoPro'].src=(Dati_Prodotti[id_set_cat][id
_set_pro][2])? Dati_Prodotti[id_set_cat][id_set_pro][2]:"";
document.forms['Seleziona_Prodotti'].Descrizione.value=(Dati
_Prodotti[id_set_cat][id_set_pro][3])?Dati_Prodotti[id_set_c
at][id_set_pro][3]:"nd";
document.forms['Seleziona_Prodotti'].Prezzo.value=(Dati_Prod
otti[id_set_cat][id_set_pro][4])?Dati_Prodotti[id_set_cat][i
d_set_pro][4]:"0";
document.forms['Seleziona_Prodotti'].Qta.value=(Dati_Prodott
i[id_set_cat][id_set_pro][1]?Dati_Prodotti[id_set_cat][id_se
t_pro][1]:0);
 Calcola_TOT()
}
function Calcola_TOT(){
if(parseInt(document.forms['Seleziona_Prodotti'].Qta.value)>
-1)
document.forms['Seleziona_Prodotti'].TOTPrezzo.value=parseIn
t(document.forms['Seleziona_Prodotti'].Prezzo.value)*parseIn
t(document.forms['Seleziona_Prodotti'].Qta.value);
 else
  document.forms['Seleziona_Prodotti'].Qta.value=0
 document.forms['Seleziona_Prodotti'].ag.focus();
}
function Add_Carrello(){
id_set_cat=document.forms['Seleziona_Prodotti'].Categoria.se
lectedIndex;
id_set_pro=document.forms['Seleziona_Prodotti'].Prodotti.sel
ectedIndex+1;
if(parseInt(document.forms['Seleziona_Prodotti'].Qta.value)>
0 || Dati_Prodotti[id_set_cat][id_set_pro][1]){
Dati_Prodotti[id_set_cat][id_set_pro][1]=parseInt(document.f
orms['Seleziona_Prodotti'].Qta.value);
  for(id=0;id<Carrello_Ary.length+1;id++){
(( id==Carrello_Ary.length)||( Carrello_Ary[id][0]==Dati_Pro
dotti[id_set_cat][id_set_pro][0])){
Carrello_Ary[id]=parseInt(document.forms['Seleziona_Prodotti
'].Qta.value)>0?Dati_Prodotti[id_set_cat][id_set_pro]:false;
    break;
   }
  }
  Set_Prodotti(id_set_pro-1);
  Set_Carrello()
  }else{
  alert("la quantità scelta deve essere maggiore di 0");
  document.forms['Seleziona_Prodotti'].ag.focus();
 }
}
function Set_Carrello(){
totCar=0;
str="Valore totale del materiale scelto = ";
for(x=0;x<document.forms['Seleziona_Prodotti'].elements['Acq
uistato'].options.length;x++)
document.forms['Seleziona_Prodotti'].elements['Acquistato'].
options[x]=null;
for(x=0;x<Carrello_Ary.length;x++)if(Carrello_Ary[x])totCar+
=parseInt(Carrello_Ary[x][4])*parseInt(Carrello_Ary[x][1]);
 for(x=totCar.toString().length;x<10;x++)totCar="0"+totCar
document.forms['Seleziona_Prodotti'].elements['Acquistato'].
options[0]=new Option(str+totCar,";");
 for(x=0;x<Carrello_Ary.length;x++)
if(Carrello_Ary[x])document.forms['Seleziona_Prodotti'].elem
ents['Acquistato'].options[document.forms['Seleziona_Prodott
i'].elements['Acquistato'].options.length]=new
Option("-["+Carrello_Ary[x][0]+"] n."+Carrello_Ary[x][1]+ "
a £."+Carrello_Ary[x][4]+"="+
(parseInt(Carrello_Ary[x][4])*parseInt(Carrello_Ary[x][1])),
"");
//
document.forms['Seleziona_Prodotti'].Acquistato.selectedInde
x=0;
}
function Visualizza_Carrello(){
totCar=0;
str="";
 for(x=0;x<Carrello_Ary.length;x++)
if(Carrello_Ary[x]){totCar+=parseInt(Carrello_Ary[x][4])*par
seInt(Carrello_Ary[x][1]);str +="-["+Carrello_Ary[x][0]+"]
n."+Carrello_Ary[x][1]+ " a £."+Carrello_Ary[x][4]+"="+
(parseInt(Carrello_Ary[x][4])*parseInt(Carrello_Ary[x][1]))+
"\n"}
 if(str){str+="\n\t Totale="+totCar ;alert(str)}
 else alert("carrello vuoto");
}
</script>
<head>
<title></title>
</head>
<body>
<table border="0" width="100%" height="100%">
  <tr>
    <td align="middle">
 <form name="Seleziona_Prodotti">
     <table border="1"> <tr>
    <td valign="top" colspan=1>
   <select name="Categoria" size="10"
onchange="Set_Prodotti()">
      <option value="">Seleziona Categoria</option>
    </select>
            </td>
       <td valign="top" align=center colspan=5>
   <select name="Acquistato" size="10" READONLY DISABLED>
      <option value>Valore totale del materiale scelto =
0000000000</option>
    </select>
       </td>
            </tr>
      <tr>
        <td align="middle">Prodotto</td>
        <td align="middle">Foto</td>
        <td align="middle">Descrizione</td>
        <td align="middle">Prezzo</td>
        <td align="middle">Qtà</td>
        <td align="middle">Totale</td>
      </tr>
      <tr>
        <td valign="top" rowspan="2">
        <select name="Prodotti" size="5"
onchange="Set_Prodotti_Campi()">
          <option value="">Seleziona un prodotto</option>
        </select></td>
        <td valign="top" rowspan="2"><IMG name=FotoPro src
="" width=70 ></td>
        <td valign="top" rowspan="2"><TEXTAREA cols=25
disabled name=Descrizione readOnly rows=4></TEXTAREA></td>
        <td valign="top"><input name="Prezzo" size="6"
maxlength="8" value='0' READONLY DISABLED ></td>
        <td valign="top"><input name="Qta" size="2"
maxlength="4" value='0' onchange="Calcola_TOT()" >
        <br>
        <input type=button name="ag" value="+" size=1
onclick="++document.forms['Seleziona_Prodotti'].Qta.value;Ca
lcola_TOT();">
        <input type=button name="sot" value="-" size=1
onclick="--document.forms['Seleziona_Prodotti'].Qta.value;Ca
lcola_TOT();">
        </td>
        <td valign="top"><input name="TOTPrezzo" size="6"
maxlength="8" value='0' READONLY DISABLED ></td>
      </tr>
      <tr>
        <td valign="top" colspan="3">
        <input TYPE="button" NAME="OK" Value="Inserisci nel
carrello" onclick="Add_Carrello()">
        </td>
      </tr>
    </table>
</form>
<div id="Spesa" align=left>
<A href="javascript:void(0)"
onclick=Visualizza_Carrello()><IMG border=0 name =Cestino
src="" width=70 ></A></div>
    </td>
  </tr>
</table>
</body>
</html>
<script language="javascript">
Dati_Prodotti=Array(
Array("Categoria1",
Array("Prodotto1 Categoria1","",false,"",100),
Array("Prodotto2 Categoria1","",false,"1descriz2",200),
Array("Prodotto3 Categoria1","",false,"1descriz3",300)
),
Array("Categoria2",
Array("Prodotto1 Categoria2","",false,"2descriz1",1000),
Array("Prodotto2 Categoria2","",false,"2descriz2",2000),
Array("Prodotto3 Categoria2","",false,"2descriz3",3000)
)
);
Set_Categorie();
</script>
--
Bye
Ro<*¿*>berto

Penso di fare cosa gradita coinvolgendo il NG. per la
realizzazione in JS di un "tipo carrello della spesa"...
o meglio, uno script che al posto del materiale comprato
inserisca in un campo riepilogativo elementi molecolari
con alcuni dati, da sommare fra loro...
posto uno script che feci tempo fa per la realizzazione
di un semplice carrello della spesa, è fatto per la maggiore
compatibilità con i browser, funzionando da IE3+ e N2+
... si basa su form con aggiornamento dinamico e dati
presi da array Js,......... è da controllare!!...
.............non possiamo abbandonare al loro destino chi
ciede un aiuto, poi ritengo possa essere una esperienza
utile per molti!!
.....grazie a chi vorrà partecipare
:)
--
Bye
Ro<*¿*>berto
----------------------
<html>
<script language="javascript">
var Bvers=parseInt(navigator.appVersion.charAt(0));
var IE=(navigator.appName.indexOf('Microsoft')>=0);
var N=(navigator.appName.indexOf('Netscape')>=0);
var IE4up= IE && Bvers>3
var N3up= N && Bvers>2
var N4up= N && Bvers>3
var
Dati_Prodotti=Array(Array(Array(false,false,false,false,fals
e)));
var Carrello_Ary=new Array();
function Set_Categorie(id_set_cat){
if(!id_set_cat)id_set_cat=0;









function Set_Prodotti_Campi(){
id_set_cat=document.forms['Seleziona_Prodotti'].Categoria.se
lectedIndex;
id_set_pro=document.forms['Seleziona_Prodotti'].Prodotti.sel
ectedIndex+1;




function Calcola_TOT(){
if(parseInt(document.forms['Seleziona_Prodotti'].Qta.value)>
-1)

function Add_Carrello(){
id_set_cat=document.forms['Seleziona_Prodotti'].Categoria.se
lectedIndex;
id_set_pro=document.forms['Seleziona_Prodotti'].Prodotti.sel
ectedIndex+1;




  }else{
  alert("la quantità scelta deve essere maggiore di 0");
  document.forms['Seleziona_Prodotti'].ag.focus();
 }
}
function Set_Carrello(){
totCar=0;
str="";
for(x=0;x<document.forms['Seleziona_Prodotti'].elements['Acq
uistato'].options.length;x++)
document.forms['Seleziona_Prodotti'].elements['Acquistato'].
options[x]=null;
 for(x=1;x<Carrello_Ary.length;x++)
 if(str){str+="\n\t Totale="+totCar ;alert(str)}
document.forms['Seleziona_Prodotti'].elements['Acquistato'].
options[x-1]=new
Option("("+(Dati_Prodotti[id_set_cat][x][1]?Dati_Prodotti[id
_set_cat][x][1]:0)+")"+Dati_Prodotti[id_set_cat][x][0],Dati_
Prodotti[id_set_cat][x][1]);
if(Carrello_Ary[x]){totCar+=parseInt(Carrello_Ary[x][4])*par
seInt(Carrello_Ary[x][1]);str +="-["+Carrello_Ary[x][0]+"]
n."+Carrello_Ary[x][1]+ " a £."+Carrello_Ary[x][4]+"="+
(parseInt(Carrello_Ary[x][4])*parseInt(Carrello_Ary[x][1]))+
"\n"}



</script>
<head>
<title></title>
</head>

      <option value>Valore totale del materiale scelto =



Set_Categorie();
</script>
-------------------------------

Eleonora & C. se nel frattempo avete alcuni dati
da passare, foto di elementi chimici, pesi molecolari,
descrizioni ecc.
si possono fare delle bozze di pagine "biologiche"
:)
....Darius, Michele "Sdrushi" Romagnoli, the fly on the net,
ecc. !!! ci date una mano????
, anche solo consigli!!
---
