[ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS

sg2019

Nuovo Utente
17 Apr 2019
18
2
3
SICILIA
www.bronteportal.it
salve vorrei capire come fare per salvare il valore di una select option che deriva da una tabella access e una volta scelta l'opzione giusta poter salvare il risultato su un record di una altra tabella. faccio l'esempio:

ho la tabella patente dove sono indicati i tipi di patente. io voglio utilizzare una select option dove escono tutte le patenti prelevate dalla tabella patente, ed una volta che trovo la patente che mi serve (ad esempio CQC) poter salvare questo dato sulla tabella allievi dove c'e' il campo categoria.
Ho provato con l'esempio che posto ma vengono salvati gli altri record tipo cognome e nome ma nella categoria è vuoto.

grazie a tutti per l'aiuto.
Felice..
 

sg2019

Nuovo Utente
17 Apr 2019
18
2
3
SICILIA
www.bronteportal.it
ecco il codice della pagina del form:

<TABLE border="1" id="table5" style="width: 100%">
<TR class="cabe">
<TD bgcolor="#FFFFFF">CATEGORIA</TD>

</TR>
<%
Dim strSearch

set conn=server.createobject("adodb.connection")
conn.open = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mappath("/mdb-database/sg2019.mdb")
sql="select * from patente order by patente asc"
set rs=server.createobject("adodb.recordset")
rs.open sql, conn, 1, 3

%>
<TR>
<TD bgcolor="#D9D9D9">
<form name="form" method="post" action="addcli.asp" >

<p><select size="1" name="categ" onchange="this.form.update()" style="background-color: #D9D9D9" onChange="invia()">
<option></option>

<%


Set Rs = Conn.Execute(SQL)
do While Not rs.EOF%>
<option>
<% =rs("patente") %>
</option>
<%rs.MoveNext
loop

%>

</select>

</form>
<%
rs.close
conn.close
set rs=nothing
set conn=nothing

%>

</select></TR></TABLE>

--------------------------------------------

ora il codice per salvare i dati in tabella:

<%
' PERCORSO DEL DATABASE
url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/sg2019.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open url_DB
' CONTROLLA SE TUTTI I CAMPI SONO STATI COMPILATI
IF Len(Request("cognome")) <3 or Len(Request("nome")) <3 then
%>
<p align="center"><font face="Verdana" size="4" color="#FF0000"><b>Campi non compilati correttamente!</b></font></p>
<%
Else
' CAMPI COMPILATI
' RICEVE L'OPERAZIONE DA SVOLGERE (AGGIUNGERE/MODIFICARE NEWS)
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM ALLIEVI"
RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic
RecSet.Addnew

RecSet("cognome") = Replace(Request.Form("cognome"), "'", "&#8242;")
RecSet("nome") = Replace(Request.Form("nome"), "'", "&#8242;")
RecSet("categoria") = Replace(Request.form("categ"), "'", "&#8242;")

non sono tutti i campi. quello che mi interessa è categoria che resta vuoto. non salva i dati.

grazie
Felice
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
524
13
18
Italy
www.riciclarte.info
Prova cosi:
Codice:
<%

    Dim strSearch

    set conn=server.createobject("adodb.connection")
        conn.open = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.mappath("/mdb-database/sg2019.mdb")
        sql="select * from patente order by patente asc"
        set rs=server.createobject("adodb.recordset")
        rs.open sql, conn, 1, 3

%>
<form name="form" method="post" action="addcli.asp" >
<div>
<select size="1" name="categ" style="background-color: #D9D9D9" onChange="invia()">
    <option value=""> </option><%
  
' effettuo il ciclo della categoria patente
    Set Rs = Conn.Execute(SQL)
        do While Not rs.EOF

    %><option value="<%=rs("patente")%>"><%=rs("patente")%></option><%

    rs.MoveNext
    loop

%>
</select>
</div>
<%

        rs.close
        conn.close
    set rs=nothing
    set conn=nothing

%>
</form>
Nel tag select non puoi mettere due "onChange":
Codice:
<select size="1" name="categ" onchange="this.form.update()" style="background-color: #D9D9D9" onChange="invia()">
 

sg2019

Nuovo Utente
17 Apr 2019
18
2
3
SICILIA
www.bronteportal.it
ciao e grazie della risposta.
si ho visto questo ma l'onchange invia() non è collegato a niente e quindi è come se non ci fosse. ma lo togliero' subito. in ogni caso non è questo il problema. io credo che per fare il replace di una select option ci vuole qualco'altro, magari una funzione javascript o jquery. boh... hai qualche idea?
 

Paolo69

Moderatore
Membro dello Staff
MOD
18 Feb 2010
524
13
18
Italy
www.riciclarte.info
...in pratica non viene valorizzata la variabile, sicuramente il problema sta nel fatto, mi sembra di aver capito, che il submit lo fa uno javascipt e non un pulsante submit.
Prova a modificare questo per vedere se lo script funziona:
Codice:
<form name="form" method="get" action..
in pratica, modificando da post a get vedrai la variabile nell'url, se non la vedi aggiungi un pulsante invio e vedi che succede
 

sg2019

Nuovo Utente
17 Apr 2019
18
2
3
SICILIA
www.bronteportal.it
ciao Paolo. Funziona !!!!!! allora ti dico. Ho cambiato da post a get ed ho visto che mi faceva vedere tutti i collegamenti nell'url ma categoria non c'era....
mi sono accorto che stranamente avevo due form , cosi' ne ho tolto uno ed ha funzionato..
sei stato grande a dirmi come fare.. grazie ancora Paolo. Se ho altri problemi posso disturbarti? hehehe
grazie ancora
e buona serata
Felice
 
  • Like
Reactions: Paolo69