Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Aiuto su ? alla fine del link

    Vi spiego il mio problema: ho una pagina che crea un filtro con le lettere, per permettere la ricerca anche così, e vi creo anceh delle pagine per continuare a sfogliare.
    Il problema è che non riesco a unire le due cose. In pratica funzionano entrambe da sole, ma se provo a unirle o funziona la prima o la seconda... Quindi o sfogli ole pagine con i record visualizzati in ordine di ID, oppure lo facci in ordine alfabetico ma li posso visualizzare solo nella prima pagina.
    Il problema è che entrambi vogliono essere messi per primi dopo il comando "$_SERVER['PHP_SELF']", quindi ho provato a fare delle prove di stampa anche con "$_SERVER['QUERY_STRING']", e ho scoperto che completa la riga soltanto dopo il primo '?'.

    Per farvi capire meglio vi faccio degli esempi:

    Codice PHP:
     [url='" . $_SERVER[']&#9668Indietro&nbsp[/url]"); //in questo caso mi stampa il link in maniera visibilmente corretta, ma non è funzionante. 
    Codice PHP:
       $N .= "[url='" $_SERVER['] N [/url]"; // in questo caso ho cercato di forzare il link e costringere a dare nel link nache pagina1 alla lettera N, ma il link risultante non funziona. 
    Codice PHP:
       $iniziale = isset($_REQUEST['pagina'])&&isset($_REQUEST['lettera']) ? $_REQUEST['pagina'] : $_REQUEST['lettera'] : A//hounito le due variabili che mi servono in un unica query per cercare di farle convalidare, ma non riesco lo stesso a creare i link. Tuttavia per gli esempi riportati sopra, ho usato le classi separatamente, ovvero una alla volta. 
    Credo che il problema possa avere a che fare o con le dichiarazioni legate a $iniziale e simili, oppure con il '?', non ho capito bene se si possono mettere due '?' per indicare un doppio filtro(come pagina e lettera), oppure se devo usare un filtro unico e '?' sia utilizzabile soltanto una volta.

    P.S. leggete anche il testo dopo // nel codice php.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,469
    Il pattern dell'operatore ternario è
    condizione ? esegui_vero : esegui_falso

    Non puoi mettere altri controlli, se devi mettere più controlli devi usare
    if - elseif - ... - else

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    uhm... non puoi mettere due "?"... nella query string devi avere

    pagina.php?var1=qualcosa&var2=altracosa

    sempre se ho capito bene cosa chiedevi

  4. #4
    Grazie a entrambi, adesso funziona perfettamente, mi ero immaginato che la soluzione fosse semplice, perchè quel '?' non mi convinceva propio, e avevo pensato che fosse quell ol'errore, sol oceh su google non avevo trovato indicazioni sull'argomento.
    Adesso vorrei sapere solo un'altra sciocchezza: quando giro le pagine se ad esempio mi trovo nella pagina 1 e l'indirizzo appare così: ?lettera=A&pagina=1, se poi giro le pagine appare così: ?lettera=A&pagina=1&pagina=2, e così mi trovo alla pagina due, ogni volta che clicco sulla pagina viene messo un nuovo &pagina=..., come faccio a bloccare questo ciclo?
    Grazie in anticipio.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,469
    Facci vedere come è il codice che usi.

  6. #6
    Ok, comuqnue non ho fatto grandi modifiche al codice postato sopra:

    Codice PHP:
    <a href='" . $_SERVER['PHP_SELF'] . "?" $_SERVER['QUERY_STRING'] . "&page=" . $page . "'>//questa è usata per stampare il link delle pagine. 
    $_SERVER['QUERY_STRING'] = lettera=A (ad esempio)

    mentre invece per stampare la pagina iniziale per le lettere uso questo:


    Codice PHP:
    "[url='" $_SERVER['] $lettera [/url]" 
    Aspetto risposte. Ciao.

  7. #7
    Forse ho trovato la soluzione.
    Al posto di scrivere:

    Codice PHP:
    <a href='" . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'] . "&pagina=" . $page  . "'
    L'ho scritto così:

    Codice PHP:
    <a href='" . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'] . "&&pagina=" . $page . "'
    In pratica al posto di mettere una sola '&', ne ho messe 2. Adesso funziona perfettamente, quindi il problema può considerarsi risolto.
    Tuttavia mi chiedevo se fosse realmente questa la soluzione più logica. Grazie e ciao.

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.