Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034

    Condizioni nel ciclo Switch

    Paginazione dei dati.
    Dovrei far apparire il link "Precedenti" solo se c'è $partenza (inviato via GET), e $partenza è maggiore di 0 e settare $indietro=$max_all solo se $partenza è maggiore di $max_all.
    Codice PHP:
    switch ($partenza) {
       case 
    $partenza>0:
       
    $indietro $partenza $step;//$step = quanti record mostrare per volta: 15
       
    $return "<a href=\"all.php?partenza=$indietro\">Precedenti</a>";
       break;
       case 
    $_GET['partenza']=="":
       
    $indietro $step;
       
    $return "";
       break;
       case 
    $partenza>$max_all://$max_all= nr max di record mostrati perpagine: 15
       
    $indietro $max_all;
       
    $return "<a href=\"all.php?partenza=$indietro\">Precedenti</a>[/b]";
       break;
    }
    echo 
    $return
    così continua a stampare il link

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    penso tu nn possa usare lo switch in quel modo, ovvero non puoi eseguire dei controlli all'interno del case:
    http://it2.php.net/switch

    ti conviene usare if + elseif + elseif + ...



    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    mi prende sempre la prima condizione (che è sempre vera) e non va più avanti:

    Codice PHP:
    if ($partenza>0) {
    $indietro $partenza $step;
    echo 
    "<a href=\"all.php?partenza=$indietro\">Precedenti</a>";
    } elseif (
    $partenza>$step) {
    echo 
    "<a href=\"all.php?partenza=$step\">Precedenti</a>";
    } elseif (!isset(
    $partenza)) {
    echo 
    "";


  4. #4
    Codice PHP:
    if (!isset($partenza)) echo "";
    else {
     if (
    $partenza>0) {
      
    $indietro $partenza $step;
      echo 
    "<a href=\"all.php?partenza=$indietro\">Precedenti</a>";
      }
     else {
      if (
    $partenza>$step) echo "<a href=\"all.php?partenza=$step\">Precedenti</a>";
     }

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    anche così stampa sempre il primo echo, quindi se nell'url scrivo pagina.php?partenza=5326423, il link Precedenti assumerà il valore di $indietro e non di $step.

  6. #6
    Codice PHP:
    switch (true) {
       case (
    $partenza>0):
       
    $indietro $partenza $step;//$step = quanti record mostrare per volta: 15
       
    $return "<a href=\"all.php?partenza=$indietro\">Precedenti</a>";
       break;
       case (
    $_GET['partenza']==""):
       
    $indietro $step;
       
    $return "";
       break;
       case (
    $partenza>$max_all)://$max_all= nr max di record mostrati perpagine: 15
       
    $indietro $max_all;
       
    $return "<a href=\"all.php?partenza=$indietro\">Precedenti</a>[/b]";
       break;
    }
    echo 
    $return

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    idem, non ci arriva proprio a stampare il link se $partenza>$max_all anche se è davvero maggiore

  8. #8
    sei sicuro che le condizioni prima non siano soddisfatte?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    6,034
    la seconda condizione è soddisfatta solo quando accedi alla pagina per la prima volta (e cioè quando non c'è $_GET['partenza'] o quando $_GET['partenza'] è vuoto);

    la prima condizione è soddisfatta quando navighi tra i record avanti e indietro;

    la terza condizione si verifica solo quando io digito nella barra di url partenza=xxxxxx (numero che supera il nr massimo di record per pagina da me stabilito): in teoria non si verifica mai però se succede, mi ritrovo con il link Precedenti che se cliccato ti scorre tutti i xxxxx record (mostrando chiaramente la pagina vuota) finchè non arrivi al numero effettivo di record presenti e cioè $max_all

  10. #10
    allora devi mettere
    Codice PHP:
    case ($_GET['partenza']>$max_all
    se no non può sapere che tu per partenza intendi il valore del get...

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.