6 messaggi dal 31 maggio 2007
ho un problema che non riesco a risolvere.
in un campo text devo inserire il risultato di un'operazione di altri
2 campi che sono in un vettore, ma che non sono ancora stati salvati
in quanto la submit non è ancora avvenuta.
c'è un modo per ovviare al problema??
allego qui il testo:
codice asp
<% response.write("<input type='text' name='q"&i&"'>")%>
<% response.write("<input type='text' name='p"&i&"' onchange='return
totale("&i&")'>")%> <% response.write("<input type='text'
name='vett("&i&",4)' disabled >")%>

codice java:
var k;
var h;
function totale(i){
k=i;
alert(document.forma.p[k]);
tot=document.forma.vett(k,2)*document.forma.vett(k,3)
document.forma.vett(k,4).value=tot;
return true;
189 messaggi dal 28 maggio 2007
Salve,

Scusa ma non ho capito cosa fa il tuo codice. Potresti spiegare meglio?
Questo codice ASP viene generato con un loop FOR?

<% response.write("<input type='text' name='vett("&i&",4)' disabled >")%>

' Cosa significa questa stringa vett(x,4)???


E il codice javascript, non l'ho capito.

document.forma.p[k]
//va bene, purchè ci siano più di uno INPUT TYPE TEXT con lo stesso nome.

document.forma.vett(k,2)
//non l'ho mai visto


Un saluto

Andrea R.
6 messaggi dal 31 maggio 2007
il codice viene generato con un FOR
il name della input type è vett( cioè l'array k ho inizializzato all'inizio della pagina)i indica la riga e 4 è la colonna. praticamente non è proprio un vettore ma una matrice.
la input type text con lo stesso nome esiste..
l'altra parte del codice java è una prova e non funziona nulla
189 messaggi dal 28 maggio 2007
Il problema con il codice JavaScript è che non si può chiamare un campo TEXTBOX di "vett(x,y)".

Chiamalo campo_x_4, ad esempio. Ovvero:

<% response.write("<input type='text' name='campo_"&i&"_4' disabled >")%>


Nel codice JavaScript dovrai fare un EVAL per ottenere l'istanza dell'oggetto textbox e il suo valore.
Ad esempio:
oggTxt = eval("document.forma.campo_"+ k +"_4");
strValore = oggTxt.value;

Un saluto
Modificato da AndreaRoma il 31 maggio 2007 22.56 -
Modificato da AndreaRoma il 31 maggio 2007 22.56 -

Andrea R.
6 messaggi dal 31 maggio 2007
se però, ad esempio, dovessi fare il prodotto di due campi convertiti con eval,come posso scrivere il risultato in un capo text della form???
189 messaggi dal 28 maggio 2007
.
come posso scrivere il risultato in un capo text della form???



oggTxt = eval("document.forma.campo_"+ k +"_4"); 
oggTxt.value = tot;



Senza vedere il codice solo posso darti una idea ...

un saluto

Andrea R.
46 messaggi dal 29 aprile 2007
Prova a fare in questo modo:
<% response.write("<input type='text' name='q"&i&"'>")%> 
<% response.write("<input type='text' name='p"&i&"' onChange='totale("&i&")'>")%> 
<% response.write("<input type='text' name='vett("&i&",4)' disabled >")%>


codice java: 
var k
var h
var tot
function totale(i){ 
k=i
alert(forma.p[k]) 
tot=forma.vett(k,2)*forma.vett(k,3)
forma.vett(k,4).value=tot 
}
6 messaggi dal 31 maggio 2007
codice della pagina asp:
<!--#include file=connessione.asp-->
<%dim vett(20,6)%>
<html>
<head>
<title>PAGINA DEI PRODOTTI</title>
<link href="stiletesina.css" type="text/css" rel="stylesheet">
<script language="JavaScript" src="funzioni.js"></script>
</head>
<body>
<input type="button" value="lista prodotti" name="lp" onClick="window.open('listaprodotti.asp','lista', 'width=300,height=600,resizable=1,scrollbars=1,status=0')">
<form method="post" action="stampa.asp" name="forma">
<table border="5" bordercolor="#FF0000">
<tr align="center"><td align="center">CODICE PRODOTTO</td><td align="center">QUANTITA'</td><td align="center">PREZZO</td><td align="center">TOTALE</td></tr>
<% for i=1 to 20%>
<TR>
<TD>
<%response.write("<select name='vett("&i&",1)' size=1>")
sql="select * from prodotti order by codp;"
conn.commandtext=sql
set rst=conn.execute
do until rst.eof%>
<option value='<%=rst("codp")%>'><%=rst("codp")%> - <%=rst("descrizione")%> - <%=rst("unita")%> </option>
<%rst.movenext
loop
rst.close
set rst=nothing%>
</TD>
<td>
<%response.write("<input type='text' name='q_"&i&"'>")%>
</td>
<td>
<%response.write("<input type='text' name='p_"&i&"' onchange='return totale("&i&")'>")%>
</td>
<td>
<%response.write("<input type='text' name='tot' disabled>")%>
</td>
</TR>
<%next%>
</table>
<input type="submit" name="CONFERMA" value="continua">
</form>
</body>
</html>






e questo è il coice della funzione javascript:
var tot ;
var k;
function totale(i){
k=i;
ogg=eval("document.forma.q_"+ k);
valoreq=ogg.value;
alert(valoreq);
ogg2=eval("document.forma.p_"+ k);
valorep=ogg2.value;
alert(valorep);
tot= valorep * valoreq;
document.forma.tot.value=tot;
return true;
}

il problema che ho ora è che nel campo tot non restituisce alcun valore.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.