Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Invio dati da form con doppia select

    Salve ragazzi ho un problemino sull'inviare i dati da due select in un form.
    Io devo fare in modo che l'utente selezioni i valori da due select all'interno di un form, e in base ai valori selezionati gli vengano mostrati dei risultati.
    Le pagine sono dinamiche e le selcet peescano i dati da un DB.

    Allora con una select riesco ad inviare tranquillamente i dati ma nn riesco a fare altrettanto con due selct contemporaneamente.

    Ho trovato questo esempio che si basa su una select e mettendoci i campi dinamici funziona benissimo. Per farlo girare con due selct come devo fare?
    Mi potete aiutare?

    <body >



    <div align="center">
    <form name="mycombowopt">
    <select name="example" size=1>
    <option value="http://www.html.it">HTML.it</option>
    <option value="http://freephp.html.it">FREEPHP</option>
    <option value="http://freeasp.html.it">FREEASP</option>
    </select><input type="button" value="Vai!" onClick="gothere()">

    </form>
    <script language="javascript">
    <!--
    function gothere(){
    var thebox=document.mycombowopt
    location=thebox.example.options[thebox.example.selectedIndex].value
    }
    //-->
    </script>
    </div>







    <div align="center">
    [img]logo_htmlit.gif[/img]
    </div>
    </body>

    Questo è l'esempio di partenza preso da html.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ma hai qualche errore particolare? posta il tuo codice e eventuali errori.

    Dovresti poi spiegare meglio quello che vuoi fare perche non capsico.
    cosa intendi per : "Allora con una select riesco ad inviare tranquillamente i dati" ??

  3. #3
    Ecco il codice con i dati dinamici:

    <form name="galleria" id="galleria">
    <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="100" align="left" class="Titolini">Epoca:</td>
    <td align="left" class="testo">
    <label>
    <select name="epoca" size="1" id="epoca">
    <%
    While (NOT rsEpoca.EOF)
    %>
    <option value="articoliTest.asp?id_epoca=<%=(rsEpoca.Field s.Item("id_epoca").Value)%>"><%=(rsEpoca.Fields.It em("epoca").Value)%></option>
    <%
    rsEpoca.MoveNext()
    Wend
    If (rsEpoca.CursorType > 0) Then
    rsEpoca.MoveFirst
    Else
    rsEpoca.Requery
    End If
    %>
    </select>
    <select name="opera" size="1">
    <%
    While (NOT rsOpera.EOF)
    %>
    <option value="articoliTest.asp?id_opera=<%=(rsOpera.Field s.Item("id_opera").Value)%>"><%=(rsOpera.Fields.It em("opera").Value)%></option>
    <%
    rsOpera.MoveNext()
    Wend
    If (rsOpera.CursorType > 0) Then
    rsOpera.MoveFirst
    Else
    rsOpera.Requery
    End If
    %>
    </select>
    <input name="button" type="button" onclick="gothere()" value="Vai!" />


    </label></td>
    </tr>
    <tr>
    <td height="10" colspan="2" class="Titolini"></td>
    </tr>
    </table>
    </form>
    <script language="javascript">
    <!--
    function gothere(){
    var thebox=document.galleria
    location=thebox.opera.options[thebox.opera.selectedIndex].value
    }
    //-->
    </script>


    Se utilizzo un solo menu di discesa (select) i dati di un recordset li passo senza problemi.
    Ora nel codice postato ho inserito una secondo menù a discesa per un 'altro campo da inviare.
    Come faccio ad aggiornare la finzione javascript per far si che lui mi riconosca pure il secondo menù (select)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    guarda...io ancora non capisco. Se hai particolari errori postali.

    Io continuo a non capire cosa devi fare .... hai errori nel passare un valore dell'option alla funzione? non raggiungi le option?

    Siam sicuri che hai errori js e non lato server?

    Hai un pulsante invio che controlla le opzioni selezionate e ti manda a una pag dinamica?

    cerca di spiegarci un po di piu

  5. #5
    Allora nel link di sotto è riportato un'esempio di link dinamico da form cliccando su un menù a discesa che preleva i campi direttamente da una tabella nel database (Epoca).

    http://80.68.196.90/testRoberto.asp

    Ora io vorrei aggiungere una seconda menù per perfezionare la ricerca (Es: voglio sapere tutti i dipinti dell'epoca barocca).

    Come faccio a ampliare il javascript per dirgli che mi deve considerare anche il secondo menù??

    Lo script dell' esempio riferito al link è il seguente e ripeto che funziona:
    (La funzione javascript lo evidenziata in rosso)

    <body>
    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td align="center"><table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>
    <form name="galleria" id="galleria">
    <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="100" align="left" class="Titolini">Epoca:</td>
    <td align="left" class="testo">
    <label>
    <select name="epoca" size="1" id="epoca">
    <%
    While (NOT rsEpoca.EOF)
    %>
    <option value="articoliTest.asp?id_epoca=<%=(rsEpoca.Field s.Item("id_epoca").Value)%>"><%=(rsEpoca.Fields.It em("epoca").Value)%></option>
    <%
    rsEpoca.MoveNext()
    Wend
    If (rsEpoca.CursorType > 0) Then
    rsEpoca.MoveFirst
    Else
    rsEpoca.Requery
    End If
    %>
    </select>
    <input name="button" type="button" onclick="gothere()" value="Vai!" />


    </label></td>
    </tr>
    <tr>
    <td height="10" colspan="2" class="Titolini"></td>
    </tr>
    </table>
    </form>
    <script language="javascript">
    <!--
    function gothere(){
    var thebox=document.galleria
    location=thebox.epoca.options[thebox.epoca.selectedIndex].value
    }
    //-->
    </script></
    td>
    </tr>
    </table></td>
    </tr>
    </table>
    </body>

    Chiaro così?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ....scusa ....so che ti preme avere la soluzione ...ma non e' chiaro.
    Allora se la tua prima select funziona copia incolla e cambia i dati, i nomi gli id ecc....
    Io non farei altro che copiare il tuo codice e cambiare queste cose....ma forse e' il caso che lo faccia tu...non credi?
    Non vedo dove sia il problema.

    Poi ...se mi dici che saltano fuori errori allora vediamo insieme....

  7. #7
    E' la prima cosa che ho fatto mettere una seconda select con i dati della seconda scelta e di aggiornase anche il javascript per far si che mi prenda in consederazione anche il secondo campo.

    Ti posto il codice con le aggiunte Le evidenzio in rosso così vedi dove è l'errore) che ho messo io:
    <body>
    <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td align="center"><table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>
    <form name="galleria" id="galleria">
    <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="100" align="left" class="Titolini">Epoca:</td>
    <td align="left" class="testo">
    <label>
    <select name="epoca" size="1" id="epoca">
    <%
    While (NOT rsEpoca.EOF)
    %>
    <option value="articoliTest.asp?id_epoca=<%=(rsEpoca.Field s.Item("id_epoca").Value)%>"><%=(rsEpoca.Fields.It em("epoca").Value)%></option>
    <%
    rsEpoca.MoveNext()
    Wend
    If (rsEpoca.CursorType > 0) Then
    rsEpoca.MoveFirst
    Else
    rsEpoca.Requery
    End If
    %>
    </select>
    <select name="opera" size="1">
    <%
    While (NOT rsOpera.EOF)
    %>
    <option value="articoliTest.asp?id_opera=<%=(rsOpera.Field s.Item("id_opera").Value)%>"><%=(rsOpera.Fields.It em("opera").Value)%></option>
    <%
    rsOpera.MoveNext()
    Wend
    If (rsOpera.CursorType > 0) Then
    rsOpera.MoveFirst
    Else
    rsOpera.Requery
    End If
    %>
    </select>
    <input name="button" type="button" onclick="gothere()" value="Vai!" />


    </label></td>
    </tr>
    <tr>
    <td height="10" colspan="2" class="Titolini"></td>
    </tr>
    </table>
    </form>
    <script language="javascript">
    <!--
    function gothere(){
    var thebox=document.galleria
    location=thebox.opera.options[thebox.opera.selectedIndex].value
    location=thebox.epoca.options[thebox.epoca.selectedIndex].value
    }
    //-->
    </script></td>
    </tr>
    </table></td>
    </tr>

    Il problema e che con queste modifiche che ho fatto io lui nn vede per niente la seconda opzione di scelta continua a funzionare come se nel form ci fosse un solo menù.


    </table>
    </body>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    allora...ragioniamo per punti.
    Che browser ti da problemi?



    Le tue select, quando selezioni un option evidenziano un URL.

    Siccome ne hai 2 ...una ha piu influenza dell'altra? ossia se dalla select1 scelgo opzione1 e dalla select2 scelgo opzione2 dove deve mandare il programma?

    Poi
    hai provato a far degli alert per vedere se arrivi agli oggetti?
    tipo
    alert(thebox.epoca.options[thebox.epoca.selectedIndex].value )


    per esempio con Firefox e con IE si accede tramite document.getElementById('tuoId') ;
    cosa che tu non fai , usi il name.
    Quello potrebbe dare problemi.

    Ultima cosa , per favore se posti tanto codice racchiudilo tra i tag Devi inviare a una sola pagina?
    non puoi scriver cosi
    Codice PHP:
    function gothere(){
    var 
    thebox=document.galleria
    location
    =thebox.opera.options[thebox.opera.selectedIndex].value
    location
    =thebox.epoca.options[thebox.epoca.selectedIndex].value

    per scriverti il codice corretto devo sapere bene cosa vuoi fare.

    Quanti pulsanti hai?

    2 select e 1 pulsante ?

  9. #9
    Intanto grazie per la pazienza e poi ti rispondo per ordine.

    Il browser che uso è explorer.

    Le due selct non sono una più importanti dell'altra. Hanno la stessa importanza per quanto riguarda i criteri di ricerca.

    Devo inviare i risultati a una sola pagina in cui avrò appunto il risultato delle scelte operate usando le due select.
    Es:
    Dalla select "epoca" seleziono "Barocca" e dalla select "opera" seleziono "Dipinti" io nella pagina dei risultati (nn è la stessa ma un'altra: articoliTest.asp) avrò tutti i dipinti dell'era Barocca

    Io ho due select e un pulsante di invio


  10. #10
    Dopo aver letto e riletto tutto il thread finalmente ho capito!
    Allora:
    1) cambia la dichiarazione della form:
    codice:
    <form name="galleria" id="galleria" action="articoliTest.asp" method="post">
    2) ogni option la devi riempire:
    per opera:
    codice:
     <option value="<%=(rsOpera.Fields.Item("id_opera").Value)%>"><%=(rsOpera.Fields.Item("opera").Value)%></option>
    per epoca:
    codice:
     <option value="<%=(rsOpera.Fields.Item("id_epoca").Value)%>"><%=(rsOpera.Fields.Item("epoca").Value)%></option>
    3) il pulsante, invece, non deve essere un "button", ma un "submit":
    codice:
    <input name="button" type="submit" value="Vai!" />
    Infine, nella pagina articoliTest.asp ti ritrovi i valori selezionati:
    codice:
    <%
    id_epoca = Request.Form("epoca")
    id_opera = Request.Form("opera")
    %>
    .. e il javascript non servì a nulla, almeno in questo caso!
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

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 © 2024 vBulletin Solutions, Inc. All rights reserved.