• User Attivo

    Visualizzare pagine diverse in base ad una tipologia diversa

    Ciao a tutti,
    ho un piccolo script in asp dove visualizzo tutti i nominativi in rubrica.
    Esistono 5 diverse tipologie:

    1. amici
    2. parenti
      3..

    Il View contatto è diverso in base alla tipologia scelta.

    Nel momento in cui effettuo una ricerca completa vorrei che in base alla tipologia mi si apra la pagina ad hoc.
    Ad esempio:
    Tipologia amico: paginaamico.asp
    Tiopologia parente: paginaparente.asp

    Credo che con un If and Else si possa fare ma non ho assolutamente idea da dove partire!!

    Il Db è in Mysql.

    PS: sono un principiante!!

    Grazie Mille a tutti coloro che mi aiuteranno.


  • Moderatore

    Ciao Leftist, per la scelta della Pagina ti consiglio l'istruzione "Select Case".

    Qui un esempio: http://www.w3schools.com/vbscript/showasp.asp?filename=demo_vb_selectcase

    Buon lavoro!


  • User Attivo

    Grazie per la risposta artcava.
    Il problema in qualche modo l'ho risolto (scopiazzando e con qualche consiglio), ovvero richiamo il progressivo (id):
    <a href="veditutto.asp?progressivo=<%=rs("progressivo ")%>&Tipo_Contatto=<%=rs("tipologia")%>">
    <img border="0" src="vedi.png" alt="Mostra scheda <%=sContatto%>"></a>

    Richiamo la pagina veditutto.asp:
    con un semplice: <% if rs("tipologia") = "Amico" then %> nel caso fosse un amico.
    E nel caso fosse un Parente: <% else if rs("tipologia") = "Parente" then %>
    <% end if %> <% end if %>

    **Problema risolto in questo caso ma se volessi in qualche modo farlo a monte?
    **
    Ovvero ho una pagina di ricerca con 4 campi:

    1. Amici
    2. Parenti
    3. Conoscenti
    4. Altro

    Se inserisco qualcosa in uno dei campi di ricerca l'action del form mi riporta in un'altra pagina unica: paginaunica.asp
    Richiamo la tabella e i campi:
    <!--#include file="conn.asp" -->
    <%
    Response.Expires = -20000 'Makes the browser not cache this page
    Response.Buffer = True 'Buffers the content so our Response.Redirect will work
    if cognome = "Amici" then
    end if

    if legame = "Parenti" then
    end if

    if altro = "Conoscenti" then
    end if

    if altro2 = "Altro" then
    end if
    tipologia=request("tipologia")
    titolo=request("titolo")
    cognome=request("cognome")
    nome=request("nome")
    legame=request("legame")
    ..........................................
    .............................................

    Set conn = Server.CreateObject("ADODB.Connection")

    conn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=xxxxx;Database=xxxx;port=xxxx;UID=x xxx;PWD=xxxx;"

    Sql = "SELECT * from anagrafica where tipologia like '"&tipologia&"%' and titolo like '"&titolo&"%' and cognome like '"&cognome&"%' and nome like '%"&nome&"%' and legame like '"&legame&"%' .................................................. order by cognome "

    set rs=conn.execute(Sql)
    %>

    Richiamando la tipologia con un semplice if: <% if rs("tipologia") = "Amici" then %> visualizzo i risultati MA e credimi sono 3 giorni che impazzisco, se inserisco ad esempio un cognome che non è in tabella il risultato è una pagina bianca. Identico problema se non inserisco nulla nei campi di ricerca 😞

    Ti e vi prego: Help me please!!


  • Moderatore

    Scusa, ma non riesco a rimettere i pezzi assieme.
    La pagina che va in errore "pagina bianca" è paginaunica.asp?

    A cosa servono:

    
    if cognome = "Amici" then
    end if
    
    if legame = "Parenti" then
    end if
    
    if altro = "Conoscenti" then
    end if
    
    if altro2 = "Altro" then
    end if
    
    
    

  • User Attivo

    Ciao,
    a nulla hai ragione, sono un refuso.

    La pagina bianca è paginaunica.asp - solo quando non trovo il corrispettivo. 😞


  • Moderatore

    Prova a farti stampare la variabile Sql prima di chiamare la execute, probabilmente c'è qcs che non va nello script di esecuzione


  • User Attivo

    Se ho capito bene (scusami non sono un esperto), levo la stringa set rs=conn.execute(Sql)?

    Se si, pagina bianca anche quando c'è il corrispettivo.

    Grazie


  • Moderatore

    Ok, leva la stringa ma fai un

    Response.Write(Sql)
    

    Per vedere cosa c'è nello script


  • User Attivo

    Buongiorno artcava,
    sorry ma ieri sera non riuscivo più a collegarmi.

    Risultato pagina bianca.
    Non sò se può essere utile ma nell'url della paginaunica.asp: ../paginaunica.asp?cognome=&nome=&legame=&submit=Cerca

    Ancora grazie


  • Moderatore

    Ok, ma a parte la pagina bianca, cosa c'è scritto nello script "Sql"?


  • User Attivo

    Sql = "SELECT * from anagrafica where tipologia like '"&tipologia&"%' and titolo like '"&titolo&"%' and cognome like '"&cognome&"%' and nome like '%"&nome&"%' and legame like '"&legame&"%' .................................................. order by cognome "

    set rs=conn.execute(Sql)


  • User Attivo

    La cosa più assurda è che sposto <% if rs("tipologia") = "Amici" then %> a fine tabella Amici mi dà come risultato 0 record nel caso avessi fatto una ricerca errata (cognome non presente), ma ora non mi distingue più le tabelle. In pratica ora visualizzo solo la tabella amici 😞 Why??


  • Moderatore

    Fatti stampare sull apagina lo script

    Response.Write(Sql)
    

  • User Attivo

    Ciao e grazie ancora per la risposta.
    Ho inserito Response.Write(Sql) all'interno della pagina, forse sbaglio qualcosa, ma non mi esce nulla :mmm:
    Non ti sò dire dove sbaglio.

    Solo un input, ma non è che sbaglio l'istruzione if? Anche perchè cmq la query funziona, ma solo se il record esiste. Forse e sottolineo mi manca qualche dichiarazione 😮

    Credimi ma ci stò sbattendo come un matto ❌x❌x:x


  • Moderatore

    @leftist1973 said:

    Ho inserito Response.Write(Sql) all'interno della pagina, forse sbaglio qualcosa, ma non mi esce nulla :mmm:

    Guarda nel codice html della pagina, da qualche parte, forse in testa, c'è stampata la query, verifica che sia corretta anche quando il record non esiste...


  • User Attivo

    Ciao la query funziona correttamente:
    Sql = "SELECT * from anagrafica where tipologia like '"&tipologia&"%' and titolo like '"&titolo&"%' and cognome like '"&cognome&"%' and nome like '%"&nome&"%' and legame like '"&legame&"%' .................................................. order by cognome "

    set rs=conn.execute(Sql)

    Nella pagina unica se, ad esempio, inserisco l'if tipologia Amici a fine tabella visualizzo la pagina con 0 record nel caso il cognome manca (ergo che la quesry funziona), il problema ora è che se cerco nome parente mi posta sempre e solo la prima tabella ovvero amici 😞

    E' come se non riuscissi a far bloccare il primo if e far partire l'else if. bhoooo


  • User Attivo

    Forse e sottolineo forse ho capito dove mi vuoi portare.
    In effetti inserendo anche un else respose.rendirect se il record non esiste mi compare cmq una pagina bianca.
    L'url mi incastra la ricerca (bho cosi penso) ...Rubrica/paginaunica.asp?cognome=cavolo&nome=&legame=&submit=Cerca

    A questo punto credo che sia come dici tu, ma non capisco come verificare e nel caso modificare la query.
    Per carità non voglio che tu me la faccia ma almeno un input su dove documentarmi o al massimo un suggerimento ...

    Ancora grazie e scusami se rompo continuamente.

    :ciauz:


  • User Attivo

    Risolto!! :vai:

    Ciao e grazie comunque!!

    :ciauz:


  • Moderatore

    Bene, buon proseguimento