Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708

    Inserire form due Select Optin indentiche database

    Ciao

    sto realizzando un inserimento calendario per squadre di calcio, quindi ho inserito in una form, oltre ai campi numero_giornata, data e ora, due select identiche che recuperano dalla stessa tabella TabSquadre gli stessi nomi delle squadre, es. in una squadra 1 e nell'altra squadra 2, cioè:

    Squadra1 VS Squadra2

    Il codice delle select option è questa:

    codice:
    sql = "SELECT * from TabSquadre where ID_TORNEO = "&id_v&" "
    
    <select name="ID_SQUADRA" id="ID_SQUADRA">
       <option value=""></option>
                       
       <% while (not rs.EOF) %>
                        
       <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                        
       <%
           rs.MoveNext()
           wend
       %>
    
    </select>
    ovviamente se chiamo le select con lo stesso nome il sistema non mi visualizza la seconda select con i valori al suo interno.

    Ho provato inserendo le select che recuperano i valori dallo stesso recordset ed anche creando un recordset per ogni select.

    Dopo diverse prove, quando riesco a visualizzare tutte e due le select valorizzate, nell'inserimento dati in db, visualizzo un doppio valore tipo così:

    id_squadra_1, id_squadra_, id_squadra_1, id_squadra_2

    ovvero in numeri:

    1,2,1,2

    ...e i campi dove vanno inseriti nel db sono 2 e non 4!

    Potete aiutarmi?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che cosi dovrebbe andare (fermo restando che la connessione al db sia corretta e che apri il recorset con connessione.open,1,3 e non con connessione.execute(sql))
    codice:
    sql = "SELECT * from TabSquadre where ID_TORNEO = "&id_v&" "
    
    <select name="ID_SQUADRA_1" id="ID_SQUADRA_1">
       <option value=""></option>
                       
       <% while (not rs.EOF) %>
                        
       <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                        
       <%
           rs.MoveNext()
           wend
       %>
    
    </select>
    
    <select name="ID_SQUADRA_2" id="ID_SQUADRA_2">
       <option value=""></option>
                       
       <% while (not rs.EOF) %>
                        
       <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                        
       <%
           rs.MoveNext()
           wend
       %>
    
    </select>
    se cosi non fosse posta tutto il codice della pagina e un link da testare, quello che inserisce in tabella non dovrebbe centrare nulla con questo problema e bisognerebbe vedere l'insert
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ciao

    avevo fatto le select come le tue. Ti allego il codice della mia pagina, ma la seconda select non è valorizzata:
    ( ho solo cambiato il nome della tabella cambiandolo da TabSquadre a TabConfigTorneo ma non cambia nulla perchè recupera le squadre anche da quest'ultima:

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    
    <%
    Dim id_v
    id_v = request.querystring("ID_TORNEO")' è la variabile che recupera il valore dall'url
    %>
    <%
    	'Dichiaro il recordset
    	Dim rs
    	'Creo il recordset
    	Set rs = Server.CreateObject("ADODB.Recordset")
    	'Dichiaro la stringa Sql
    	Dim sql
    	'Creo la stringa Sql.
    	sql = "SELECT * from TabConfigTorneo where ID_TORNEO = "&id_v&" "
    	rs.Open sql, cn, 1,3 
    %>
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Inserisci Calendario Elenco B</title>
    <link href="/CSS/pannello_2012.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
    <table id="inserisci">
      <caption>
        INSERISCI CALENDARIO ELENCO B (Vers.4.1)
      </caption>
      <thead>
        <tr>
        	<th colspan="4"></td></th>
        </tr>
      </thead>
      <tbody>
    <%
    'If not rs.eof Then 'Per utilizzare il colspan nel <td> o l'id nel <div> non si devono utilizzare le "" cioè: <th colspan=7>
    if id_v <> "" then
    %>
       <form id="form" method="post" action="?id_torneo=<%=id_v%>&update=add">
    	<tr><th colspan="4"><div id="center">Nome Toreno:</div></th></tr>
        <tr><td colspan="4"><div id="center"><%=id_v%>	
    	<input name="NOME_TORNEO" value="<%=rs("NOME_TORNEO")%>" type="text" class="textbox"></div></td></tr>
        <tr><td colspan="4"></td></tr>
        <tr><th colspan="4"><div id="center">Numero Giornata:</div></th></tr>
        <tr><td colspan="4"><div id="center"><input type="text" name="NUM_GIORNATA" value="" /></div></td></tr>
        <tr><td colspan="4"></td></tr>
        <tr>    
        	<th colspan="2"><div id="center">* Nome Squadra 1:</div></th>
        	<th colspan="2"><div id="center">* Nome Squadra 2:</div></th> 
        </tr>
        <tr>
        	<td colspan="2">
            <div id="center">
                <select name="ID_SQUADRA_1" id="ID_SQUADRA_1">
                   <option value=""></option>
                                   
                   <% while (not rs.EOF) %>
                                    
                   <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                                    
                   <%
                       rs.MoveNext()
                       wend
                   %>
                
                </select>
            </div>
    		</td>
            <td colspan="2">
            <div id="center">
                <select name="ID_SQUADRA_2" id="ID_SQUADRA_2">
                   <option value=""></option>
                                   
                   <% while (not rs.EOF) %>
                                    
                   <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                                    
                   <%
                       rs.MoveNext()
                       wend
                   %>
                </select>
            </div>
    		</td>
        </tr>
        <tr><td colspan="4"><div id="bottone"><input type="submit" value="INSERISCI" /></div></td></tr>    
       </form>
      </tbody>
    </table>
    </body>
    </html>
    <% End If' Controllo rs.eof %>
    <%
    	'Chiudo il recordset
    	rs.Close 
    	Set rs = Nothing
    %>
    <%
    'SE la richiesta dell'interrogazione della stringa (metodo GET) è = add (aggiungi) ALLORA
    if request.querystring("update")="add" then
    '...esegui lo script sotto
    %>
    <%
    nome_torneo=trim(replace(request.form("NOME_TORNEO"), "'", "''"))'Testo che proviene da textbox
    num_giornata=replace(request.form("NUM_GIORNATA"), ".", "") 'Numerico da textbox
    num_giornata=replace(NUM_GIORNATA, ",", ".")'Numerico da textbox
    
    id_squadra_1=request.form("ID_SQUADRA")
    id_squadra_2=request.form("ID_SQUADRA")
    'nome_squadra_1=trim(replace(request.form("NOME_SQUADRA"), "'", "''"))
    'nome_squadra_2=trim(replace(request.form("NOME_SQUADRA"), "'", "''"))
    %>
    <%
    'INIZIO CONTROLLI
    if num_giornata ="" then num_giornata ="0" end if
    if id_squadra_1 ="" then id_squadra_1 ="0" end if
    if id_squadra_2 ="" then id_squadra_2 ="0" end if
    'FINE CONTROLLI
    
    'esegue la connessione SQL
    'cn.Execute(sql_calendario)
    Dim sql_calendario
    
    sql_calendario = "INSERT INTO TabCalendario (NOME_TORNEO, ID_TORNEO, NUM_GIORNATA, ID_SQUADRA_1, ID_SQUADRA_2) Values ('"&nome_torneo&"', "&id_v&","&num_giornata&","&id_squadra_1&","&id_squadra_2&")"
    
    'Visualizza un messaggio dell'avvenuto inserimento
    Response.Write "°°° sql_calendario...: " & sql_calendario & "
    " & "
    "
    'Response.Flush 
    
    'esegue la connessione SQL
    cn.Execute(sql_calendario)
    %>
    <%
    response.redirect("inserisci_calendario_elencoA_2012.asp")
    %>
    <%
    'Chiudo la connessione
    cn.Close
    Set cn = Nothing
    %>
    <% end if' FINE CONTROLLO ("update")="add" %>
    Il codice di questa pagina è qui:
    http://trofeoninjapizza.it/pannello/...p?id_torneo=15

    Per visualizzare l'inserimento va qui(xrò non fa l'inserimento):
    http://trofeoninjapizza.it/pannello/...o=Torneo_Prova

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova a cambiare il ciclo con
    codice:
    <%do while not(rs.eof)%>
    <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
    <%rs.movenext
    loop%>
    in entrambe le select (non vorrei che fosse wend che blocchi la seconda select), se non dovesse funzionare neanche cosi fai un ciclo unico e usi due variabili d'appoggio tipo:
    codice:
    <%do while not(rs.eof)
    dim select1, select2
    select1 = "<option value="""&rs("ID_SQUADRA")&""">"&rs("NOME_SQUADRA")&"</option>"
    select2 = "<option value="""&rs("ID_SQUADRA")&""">"&rs("NOME_SQUADRA")&"</option>"
    rs.movenext
    loop%>
    le variabili le posizionerai dentro le rispettive select
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ciao ho risolto così:

    codice:
    'Inizio prima select
    'APRIRE CONNESSIONE
    'APRIRE RECORDSET
    <%
    	'Dichiaro il recordset
    	Dim rs
    	'Creo il recordset
    	Set rs = Server.CreateObject("ADODB.Recordset")
    	'Dichiaro la stringa Sql
    	Dim sql
    	'Creo la stringa Sql.
    	sql = "SELECT * from TabSqaudra where ID_TORNEO = "&id_v&" order by NOME_SQUADRA asc"
    	rs.Open sql, cn, 1,3
    %>
    <select name="id_squadra_1" id="id_squadra_1">
       <option value=""></option>
       <%	
            Dim squadre_1_v, i
            squadre_1_v = Array(rs("nome_squadra"))
            i = 0
                
            For i = 0 To UBound(squadre_1_v)
       %>
    
       <% While Not rs.eof %>
       <option value="<%=rs("id_squadra")%>" selected><%=rs("nome_squadra")%></option>
          <select name=""></select>
          
       <%
           'Vai al prossimo
           rs.MoveNext
           Wend
       %>
    </select>
    <%Next%>
    <%	'Chiudo il recordset
            rs.Close 
            Set rs = Nothing
                
    'Chiudi la connessione 
    cn.Close 
    'Distruggi l'oggetto 
    Set cn = Nothing
    'Fine prima select
    %>
    
    <%
    'Inizio seconda select
    'RIAPRIRE LA STESSA CONNESSIONE
    'RIAPRIRE LO STESSO RECORDSET
    
    	'Dichiaro il recordset
    	Dim rs
    	'Creo il recordset
    	Set rs = Server.CreateObject("ADODB.Recordset")
    	'Dichiaro la stringa Sql
    	Dim sql
    	'Creo la stringa Sql.
    	sql = "SELECT * from TabSquadra where ID_TORNEO = "&id_v&" order by NOME_SQUADRA asc"
    	rs.Open sql, cn, 1,3
    %>
    <select name="id_squadra_2" id="id_squadra_2">
       <option value=""></option>
       <%	
            Dim squadre_2_v, j
            squadre_2_v = Array(rs("nome_squadra"))
            j = 0
                
            For j = 0 To UBound(squadre_2_v)
       %>
    
       <% While Not rs.eof %>
       <option value="<%=rs("id_squadra")%>" selected><%=rs("nome_squadra")%></option>
          <select name=""></select>
          
       <%
           'Vai al prossimo
           rs.MoveNext
           Wend
       %>
    </select>
    <%Next%>
    <%	'Chiudo il recordset
            rs.Close 
            Set rs = Nothing
                
    'Chiudi la connessione 
    cn.Close 
    'Distruggi l'oggetto 
    Set cn = Nothing
    'Fine seconda select
    %>
    Il concetto è riaprire e chiudere sia la connessione che il recordset!

  6. #6
    Non c'è bisogno di chiudere il recordset nè tantomeno la connessione, basta riportare il puntatore all'inizio.

    codice:
    sql = "SELECT * from TabSquadre where ID_TORNEO = "&id_v&" "
    
    <select name="ID_SQUADRA_1" id="ID_SQUADRA_1">
       <option value=""></option>
                       
       <% while (not rs.EOF) %>
                        
       <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                        
       <%
           rs.MoveNext()
           wend
    
    'finito il primo ciclo while, il puntatore è dopo l'ultimo record (EOF), 
    'quindi il successivo: "while (not rs.EOF)" non viene eseguito
    'Invece di rieseguire la query, è sufficiente spostare il puntatore al primo record: 
    rs.MoveFirst()
    
       %>
    
    </select>
    
    <select name="ID_SQUADRA_2" id="ID_SQUADRA_2">
       <option value=""></option>
                       
       <% while (not rs.EOF) %>
                        
       <option value="<%=rs("ID_SQUADRA")%>"><%=rs("NOME_SQUADRA")%></option>
                        
       <%
           rs.MoveNext()
           wend
       %>
    
    </select>
    Invece di scorrere il recordset due volte, si potrebbe "salvare" in una stringa l'HTML e inserirla nelle due select:

    codice:
    sql = "SELECT * from TabSquadre where ID_TORNEO = "&id_v&" "
    
    
       optionStr="<option value=""""></option>"
                       
       <% while (not rs.EOF) %>
                        
       optionStr=optionStr&"<option value="""&rs("ID_SQUADRA")&""">"&rs("NOME_SQUADRA")&"</option>"&vbcrlf
                        
       <%
           rs.MoveNext()
           wend
    %>
    <select name="select1">
        <%=optionStr%>
    </select>
    
    <select name="select2">
        <%=optionStr%>
    </select>

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ciao

    grandissima spiegazione mi hai chiarito un sacco di cose!

    Ho provato i 2 metodi e logicamente funzionano tutti e 2!

    Volevo chiederti se è possibile recuperare 3 valori dalle select. Ho provato con questo metodo:

    codice:
    optionStr=optionStr&"<option value="""&rs("ID_SQUADRA")&"-"&rs("NOME_SQUADRA")&"-"&rs("CODICE_SQUADRA")&""">"&rs("NOME_SQUADRA")&"</option>"&vbcrlf
    ...ma non riesco ancora a recuperare i valori.
    Ho una funzione che rileva il segno "-" , splitta i 3 valori che poi recupero in 3 variabili:

    id_squadra_1
    nome_squadra_1
    codice_squadra_1

    e x la seconda select lo stesso:

    id_squadra_2
    nome_squadra_2
    codice_squadra_2

  8. #8
    Il metodo split restituisce un array.

    array=Split(Request.form("select1"),"-")

    id_squadra_1=array(0)
    nome_squadra_1=array(1)
    codice_squadra_1=array(2)

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    708
    Ciao ho provato ha modificare così:

    codice:
        <tr>
               <% optionStr="<option value=""""></option>" %>
                               
               <% while (not rs.EOF) %>
    
    <% optionStr=optionStr&"<option value="""&rs("ID_SQUADRA")&"-"&rs("NOME_SQUADRA")&"-"&rs("CODICE_SQUADRA")&""">"&rs("NOME_SQUADRA")&"</option>"&vbcrlf %>               
    
               <%
                   rs.MoveNext()
                   wend
               %>
         <td colspan="2">
             <select name="select1">
                <%=optionStr%>
             </select>
          </td>
    
          <td colspan="2">
               <select name="select2">
                  <%=optionStr%>
               </select>
        	</td>
        </tr>
    ora xrò dovrei integrargli il codice dell'array, ma non avendo mai utilizzato quel tuo tipo di codice, in + ho appena iniziato con gli array, non riesco a capire come crearlo. Puoi darmi ancora un aiuto?

    Fatto l'array basta aggiungerti il tuo split e sarebbe finito!

  10. #10
    L'array non lo devi creare tu, viene creato dallo split.

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.