Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    38

    Passare variabile per cercare una pagina

    Salve a tutti,
    forse il titolo è un po' generico provo a spiegarmi meglio.
    Classico elenco di record in più pagine, ho creato i pulsanti "avanti" e "indietro" per navigare tra le pagine, ora vorrei poter andare direttamente ad una pagina semplicemente inserendo il numero di pagina e cliccando sul pulsante.

    Con il codice che ho scritto la variabile viene passata solo dopo che viene cliccato il submit e quindi non si genera l'evento
    codice HTML:
    <form method="POST" action="index.php" >
    Vai a pagina <input type="text" name="sceltapagina">
    <?php@$sceltaPage = $_POST['sceltapagina'];
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . $sceltaPage . "\">";
    echo "</a>";
    ?>
    <input type="submit" name="btnVai" value="cerca" class=prova>
    </form>
    Dove sbaglio?

    Grazie a chiunque possa darmi una dritta.

    Massimo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    mi viene in mente un reindirizzamento
    codice:
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . $sceltaPage . "\">";
    echo "</a>";
    
    sostituisci con 
    header("Location:latuapagina.php?pag=$sceltaPage") ;

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    oppure passi la var nell'action direttamente, tanto mi sembra di capire che si tratta della stessa pagina
    Quote Originariamente inviata da michelepi Visualizza il messaggio
    mi viene in mente un reindirizzamento
    codice:
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . $sceltaPage . "\">";
    echo "</a>";
    
    sostituisci con 
    header("Location:latuapagina.php?pag=$sceltaPage") ;

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    38
    Quote Originariamente inviata da michelepi Visualizza il messaggio
    oppure passi la var nell'action direttamente, tanto mi sembra di capire che si tratta della stessa pagina
    Ciao Michelepi,
    prima di tutto grazie.
    Ho provato a sostituire il codice come mi hai suggerito ma mi da questo errore:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\notezappellini\index.php:297) in C:\xampp\htdocs\notezappellini\index.php on line 400

    Come hai scritto tu la pagina è sempre la stessa quindi vorrei provare l'altra soluzione e cioè passare la var nell'action, ma considerato la mia poca conoscenza di php non saprei da dove partire.
    Incomincio comunque a dare uno sguardo per capire come si fa

  5. #5
    Ciao, è probabile non abbia capito la tua richiesta e me ne scuso, ma se la necessita' e'
    spostarsi su una pagina scelta con un input questo funziona.

    codice:
    <?php
    	$sceltapagina="";
    	if(isset($_POST['btnVai']))
    	{
    		
    	  
    	  $sceltapagina=filter_input(INPUT_POST, 'sceltapagina', FILTER_SANITIZE_STRING);
    	  header("Location: $sceltapagina");	
    	}
    	
    	
    	
    	
    ?>
    
    
    <form method="POST" action="index.php" >
    <input type="text" name="sceltapagina">
    
    
    <input type="submit" name="btnVai" value="cerca" class=prova required>
    
    
    </form>
    Spero di essere stato utile.
    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    stampi qualcosa prima, se metti una @ prima del header dovrebbe togliere il warning ma non è la soluzione ideale.
    prova questo sotto,


    codice:
    <form method="POST" action="index.php" >
    Vai a pagina <input type="text" name="sceltapagina">
    <?php@$sceltaPage = $_POST['sceltapagina'];
    echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . $sceltaPage . "\">";
    echo "</a>";
    ?>
    <input type="submit" name="btnVai" value="cerca" class=prova>
    </form>//prova così
    
    <?php if($_POST['btnVai'] == "cerca"){
    
    $sceltaPage = $_POST['sceltapagina'] ;
    
    header("Location:latuapagina?pag=$sceltaPage") ;
    
    
    }
    
    <form method="POST" action="index.php" >
    Vai a pagina <input type="text" name="sceltapagina" value="">
    
    <input type="submit" name="btnVai" value="cerca" class=prova>
    </form>
    Quote Originariamente inviata da Maxus68 Visualizza il messaggio
    Ciao Michelepi,
    prima di tutto grazie.
    Ho provato a sostituire il codice come mi hai suggerito ma mi da questo errore:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\notezappellini\index.php:297) in C:\xampp\htdocs\notezappellini\index.php on line 400

    Come hai scritto tu la pagina è sempre la stessa quindi vorrei provare l'altra soluzione e cioè passare la var nell'action, ma considerato la mia poca conoscenza di php non saprei da dove partire.
    Incomincio comunque a dare uno sguardo per capire come si fa

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    scusa forse non era chiaro prima

    comunque prova così

    codice:
    <?php if($_POST['btnVai'] == "cerca"){
    
    $sceltaPage = $_POST['sceltapagina'] ;
    
    header("Location:latuapagina?pag=$sceltaPage") ;
    
    
    }
    
    <form method="POST" action="index.php" >
    Vai a pagina <input type="text" name="sceltapagina" value="">
    
    <input type="submit" name="btnVai" value="cerca" class=prova>
    </form>

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    38
    Grazie Maria,
    ho provato il tuo codice così come quello di michelepi con un altra pagina e funziona.
    Il problema adesso è capire perchè nella pagina originale mi da questo errore:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\notezappellini\index.php:297) in C:\xampp\htdocs\notezappellini\index.php on line 400

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    38
    Grazie michelepi,
    il codice funziona perfettamente (ho provato in una pagina test) ma come ho scritto a Maria qui sopra, nella pagina originale continua a venire fuori il messaggio d'errore:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\notezappellini\index.php:297) in C:\xampp\htdocs\notezappellini\index.php on line 400

    Ora devo capire dove sto sbagliando

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    38
    Ho risolto il problema del messaggio:
    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\notezappellini\index.php:297) in C:\xampp\htdocs\notezappellini\index.php on line 400

    Dietro suggerimento di un altro sito ho aggiunto questo codice all'inizio del file:
    <?php ob_start(); ?>

    Grazie a tutti per l'aiuto

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