Jump Menu, Text Area e Database...come fare?

frankiedeguello

Utente Attivo
24 Mag 2005
42
0
0
48
Salve a tutti!

problema: ho un database in access a cui mi collego tramite asp, all'interno del database ho dei prodotti con prezzi differenti a seconda delle opzioni che scegli l'utente, nella pagina asp è contenuto un jump menu in cui sono elencate tutte le opzioni disponibili e un textarea con il prezzo corrispondente, il nocciolo del problema è che non riesco a far cambiare il prezzo nel campo textarea quando si cambia l'opzione del jump menu!

Vorrei risolvere il tutto tramite javascript, e possibile?

spero di essermi spiegato, in effetti il discorso è un po' contorto!!!!!!!!! :dipser: :dipser:

grazie a tutti, ciao :byebye:
 
Usa il jump menu per richiamare la stessa pagina ma con parametri diversi!

Quando recuperi i dati dal database, la connessione viene aperta, vengono estratti i dati, viene chiusa la connessione e vengono presentati i dati sotto forma di html per essere leggibili al browser!
Quindi quando consulti la pagina, sei già su una pagina statica e non puoi prelevare i dati a tuo piacimento senza ricaricare la pagina!

Basta fare un semplice recordset, filtrato per un criterio da te scelto!

Byez.
 
Allora intanto scusa per il ritardo e grazie per la risposta! :)

ho risolto così:

javascript per jump menu:

<SCRIPT LANGUAGE="javascript">

function prz(url)
{
selez=document.nomemodulo.nomejumpmenu.options[document.nomemodulo.nomejumpmenu.selectedIndex].value;
document.nomemodulo.nometextfield1.value=selez;
}
</SCRIPT>


--codice jump menu:

<form name="nomemodulo">
<table width="75%">
<tr>
<td>
<p><b>Finitura</b><br>
<select size="1" name="nomejumpmenu" onChange="if (this.selectedIndex!=0){prz()}">
<option>Scegli...</option>
<option value="<%=Rs("campo1")%>">Opzione1</option>
<option value="<%=Rs("campo2")%>">Opzione2</option>
<option value="<%=Rs("campo3")%>">Opzione3</option>
<option value="<%=Rs("campo4")%>">Opzione4</option>
<option value="<%=Rs("campo5")%>">Opzione5</option>
</select>
</p>
</td>
</tr>
<tr>...


--codice textfield:

...<td>
<input type="text" name="nometextfield1" size="10">
</td>
</tr>...
</table>
</form>

Così al variare del jumpmenu varierà il record visualizzato sul textfield (la connessione al database è stata fatta tramite asp)

e fin qui tutto ok...


ora devo fare un altro javascript per calcolare le misure speciali del prodotto (sono misure opzionali di mobili che devono essere immesse dall'utente, se lo desidera...) indicate in questo modo:

- per un aumento o una diminuzione fino al 20% del volume del mobile il prezzo aumenta del 25%
- per un aumento o una diminuzione che superano il 20% del volume iniziale il prezzo è da verificare...

ho fatto questo javascript:

function speciale(m,n,o,p,x,y,prezzopiu,volpiu,volmeno,volimmesso)
{
m=document.modulo.nometextfield.value;
n=document.modulo.larghezzasp.value;
o=document.modulo.profondita.value;
p=document.modulo.altezzasp.value;
x=("<%=Rs("Volume in m3")%>") * 20 / 100;
y=m * 25 / 100;
prezzopiu=m + y;
volpiu=("<%=Rs("Volume in m3")%>") + x;
volmeno=("<%=Rs("Volume in m3")%>") - x;
volimmesso=n * o * p

if ((volimmesso<volpiu) && (volimmesso>volmeno))

{
document.modulo.T1.value=prezzopiu;
}
else
{
document.modulo.T1.value="Prezzo da verificare";
}
}

associato ad un bottone ricalcola, ma non funziona!!!

In effetti sono un principiante e forse ci sono diversi errori, avete qualche idea a riguardo?


Grazie ciao
 
Il tuo javascript sembra giusto, anzi mi sembra porprio giusto!

L'unica cosa che mi lascia perplesso è il nome del campo!

Prova a dare al campo un nome tutto attaccato!!

non è fattibile un nome come Volume in m3 !!!
 
i nomi dei campi finora non hanno dato problemi, in effetti ho già fatto javascript di questo genere per ricalcolare le quantità i prezzi e gli importi

ad esempio per ricalcolare il volume di più prodotti ho fatto:

function ricalcolavolume(c,d)
{
c=("<%=Rs("Volume in m3")%>");
d=document.modulo.textfieldquantita.value;
document.modulo.volume.value=c * d;
}

a cui ho associato il solito bottone ricalcola che richiama la funzione ricalcolavolume()


e per questo tutto ok

purtroppo il db mi è stato dato dal proprietario del catalogo e l'ha fatto con dei titoli indecenti.... :hammer:
 
così ad esempio inizia a funzionare qualcosa:


function speciale(m,n,o,p,x,y,prezzopiu,volpiu,volmeno,volimmesso)
{
m=document.modulo.T1.value;
n=document.modulo.larghezzasp.value;
o=document.modulo.profonditasp.value;
p=document.modulo.altezzasp.value;
x=("<%=Rs("Volume in m3")%>") * 20 / 100;
y=m * 25 / 100;
prezzopiu=m + y;
volpiu=("<%=Rs("Volume in m3")%>") + x;
volmeno=("<%=Rs("Volume in m3")%>") - x;


volimmesso=n * o * p

if (volimmesso<volpiu)

{
document.modulo.T1.value=prezzopiu;
}
else
{
document.modulo.T1.value="da verificare";
}

if (volimmesso>volmeno)
{
document.modulo.T1.value=prezzopiu;
}
else
{
document.modulo.T1.value="da verificare";
}
}

cioè mi scrive il prezzo iniziale seguito dal + 25% tipo

1000250, dove 1000 è il prezzo iniziale, mentre 250 è la maggiorazione del 25%, come mai non li somma direttamente??

poi di problemi ce ne sono ancora molti, infatti se immetto un valore altissimo (o anche bassissimo) non scrive "da verificare" ma calcola sempre il +25%
 
Togli le virgolette da dentro le parentesi! Così te la vede come una stringa e non come un numero!

Es:

x=("12345")+20 dovrebbe dare 1234520

invece così

x=(12345)+20 dovrebbe dare 12365

Se non va bene lo stesso, togli completamente le parentesi e le virgolette!
 
Ciao!

ho risolto tutto, dopo aver tolto le virgolette e aver messo la variabile volimmesso=n * o * p / 1000000

infatti il volume doveva essere calcolato in m3 mentre l'utente inseriva le misure in cm.

"piccola" svista!!! :dormo:

Grazie di tutto :fonzie:
 

Discussioni simili