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

    Doppio filtro di dati da form

    Ciao ragazzi ho bisogno del vostro aiuto.

    Ho la necessita di costruire un'archivio per una galleria d'arte dove i dati devono essere filtrati contemporaneamente per ora per l'"epoca" e "tipo di opera".
    In pratica per esempio devo riuscire a visualizzare tutte i dipinti (Tipo di opera) dell'epoca Baroca (Epoca).

    Per Fare questo ho hatto un db con tre tabelline:
    Tabella Epoca:
    id_epoca
    epoca

    Tabella Tipo Opera
    id_tipoOpera
    tipoOpera

    E poi un'altra tabella "Articoli" che tra i campi hanno anche quelli che mi mettono in relazione con le tabelle di cui sopra.

    Ora volevo mettere a disposizione del cliente un'inatrefacca in cui seleziona da due campi menu a discesa sia l'epoca che il tipo di opera e dopo aver schiacciato invio mostrava i risultati.

    Sono riuscito a far il filtro senza problemi su un campo (Epoca) ma nn riesco a filtrare i dati usando tutti e due i campi.

    Potreste per caso darmi una mano su come risolvere la situazione.

    Io per fare questo uso Dreamweaver e so che vi rimane sullo stomaco però se magari mi dite come funziona un doppio filtro di questo genere io riesco ad ad adattare la situazione al programma che uso. (Come ho fatto molte volte in passato).

    Ciao e grazi e a tutti in anticipo.


  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se la tabella articoli contiene entrambi gli identificativi (epoca e tipo opera) devi fare una query alla quale li passi entrambi dal form di ricerca.

    Roby

  3. #3
    Potresti farmi un'esempio cortesemente oppure indicarmene uno che possa studiare?

    Grazie

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    <%
    id_opera = trim(request.form("id_opera"))
    id_tipoOpera = trim(request.form("id_tipoOpera"))
    
    sql = "SELECT Articoli.* FROM Articoli WHERE id_opera = "& id_opera &" AND id_tipoOpera = "& id_tipoOpera &""
    %>
    Tanto per cominciare nel caso da due menu a tendina scegliessi le opere e i tipi...

    Roby

  5. #5
    Se nn sbaglio questa istruzioine sql dovrebbe essere inserita nella pagina dove devo vedere i risultati.
    Dico alla tabella articoli di darmi i risultati in base all' id_epoca e id_tipoOpera.

    Li il problema nn ce l'ho o meglio ancora lo devo affrontare ma nn credo di avere difficoltà.

    Il mio problema è a monte.

    Io nella pagina dove devo fare la selzione ho creato dure recordset: uno per Epoca e uno per TipoOpera.

    A ogni campo di menù a discesa che si trova nel form ho associato un campo di un recordset (Epoca, TipoOpera).
    Sul bottone invio ho fatto il link dicendogli di passarmi entrambi gli id ma nulla lui ne passa solo uno.
    Ho provato a mettere il link sulla proprietà "action" del form ma in quel caso lui mi passa solo il primo id di entrambi i record.


    Io volevo sapere come fare in modo che mi passasse entramebe gli id che io seleziono.


  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Vediamo questo menu a discesa che hai costruito.

    Roby

  7. #7
    <form action="articoliTest.asp?id_epoca=<%=(rsEpoca.Fiel ds.Item("id_epoca").Value)%>&amp;id_opera=<%=(rsOp era.Fields.Item("id_opera").Value)%>" method="post" name="form1" id="form1" onsubmit="MM_jumpMenuGo('opera','parent',0)">
    <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="menu1">
    <%
    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">
    <%
    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 type="submit" name="Button1" value="Vai"/>
    </label></td>
    </tr>
    <tr>
    <td height="10" class="Titolini">Opera:</td>


    <td height="10"></td>
    </tr>
    <tr>
    <td colspan="2" align="center" class="testo"><label>&amp;id_opera=<%=(rsOpera.Fields.Item("id_opera"). Value)%>">gggg</label></td>
    </tr>
    </table>
    </form>

    Questo è il codice messo all'interno del form.

    Sto cercando di vedere anche nella sezione javascript su come validare un form con due campi select e di adattare i dati stati ai miei che sono dinamici.

    Intanto ancora grazie per l'aiuto.

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    javascript non c'entra nulla...
    Il form deve rimandare solo a "articoliTest.asp"
    I value delle select devono essere

    codice:
    <select name="id_epoca">
    <%
    While (NOT rsEpoca.EOF)
    %>
    <option value="<%=(rsEpoca.Fields.Item("id_epoca").Value)%>"><%=(rsEpoca.Fields.Item("epoca").Value)%></option>
    <%
    rsEpoca.MoveNext()
    Wend
    If (rsEpoca.CursorType > 0) Then
    rsEpoca.MoveFirst
    Else
    rsEpoca.Requery
    End If
    %>
    </select>
    E in maniera simile l'altro.

    Roby

  9. #9
    Ho fatto come dici te ma in questo modo lui mi passa sempre l'id 1 di entrambi i record.



  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Vediamo cosa hai scritto, ed usa il tag # per racchiudere lo script così si capisce meglio.

    Roby

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.