• User Attivo

    Allora.Se andate a questo sito
    http://www.aiutamici.com/corsi/lezione.asp?CodCat=42

    Noterete che in fondo alla pagina stanno dei collegamenti (indice, indietro, avanti)

    Se cliccate su avanti, vi porta ad u altra pagina web che sara:
    http://www.aiutamici.com/corsi/Lezione.asp?CodCat=43

    Vorrei fare la stessa cosa ma usando php.
    Ad esempio, se tengo la pagina "lezione1.php" e la pagina "lezione3.php",
    Vorrei che quando faccio il collegamento dalla pagina lezione1 alla pagina lezione3, nella barra degli indirizzi voglio che compaia :

    lezione1 : www.ilmiosito.it/index.php?numerolezione=1

    lezione3 : www.ilmiosito.it/index.php?numerolezione=3

    grazie


  • Moderatore

    l'unica cosa che puoi fare IMHO è creare la pagina lezioni.php che richieda sempre il valore GET di numerolezione 🙂
    in modo che se non gli si dà un valore GET ti mostri sempre la prima lezione o l'intro 🙂


  • User Attivo

    Grazie, ma...
    isto che con php sto alle basi, potresti darmi un esempio?


  • Moderatore

    mi serve sapere se le lezioni sono in un db o in pagine html 😛


  • User Attivo

    In pagine html


  • Moderatore

    allora lavoriamo assieme inizia a creare una pagina di intro che porta la totalità delle lezioni....


  • User Attivo

    Allora:
    Facciamo cosi.
    Visto che le lezioni non le ho ancora fininte di scriverle tutte, posso creare delle pagine con qualcosa scritto dentro , ne farò una cinquantina.Ok?


  • Moderatore

    io ti ho detto solo di creare una pagina coi link alle varie lezioni non di creare tutte le lezioni 😉


  • User Attivo

    ok lo farò.Adesso devo uscire, per cui creero la pagina attorno all' una


  • User Attivo

    Ok, ho fatto la pagina con i collegamenti


  • Moderatore

    fammela vedere ed iniziamo a lavorare 🙂


  • User Attivo

    [HTML]<html>
    <head>
    <title>indice</TITLE>
    </head>
    <body>
    <p><a href="index.htm">Index</a></p>
    <p><a href="lezione1.htm">lezione1</a></p>
    <p><a href="lezione2.htm">lezione2</a></p>
    <p><a href="lezione3.htm">lezione3</a></p>
    </body>
    [/HTML]

    ok?


  • User Attivo

    Come ha correttamente detto il nostro grande moderatore, per far comparire le variabili nella barra degli indirizzi si usa il metodo GET, quindi un form con invio di variabili.
    Nella pagina postata da ilnetsurfer non vedo ne form, ne variabili, quindi c'è da ricominciare da capo.
    Come noti anche tu (mi riferisco a netsurfer), se cambia il nome della variabile, non cambia il nome della pagina caricata, quindi non servono 50 pagine ma anche una sola andrebbe bene, cambiandone il contenuto in base al valore della variabile.
    In php si potrebbe fare qualcosa del genere:
    [php]
    switch ($_GET['numerolezione'])
    {
    case 1:
    include ('pagina1.php')
    break;
    case 2:
    include ('pagina2.php')
    break;
    //........ eccetera .........
    }
    echo '<form action=index.php method=GET name=form_pagine>
    <a href=javascript:precedente('.$_GET['numerolezione'].')>Indietro</a>
    <br>
    <a href=javascript:successivo('.$_GET['numerolezione'].')>Avanti</a>
    <input type=hidden name=numerolezione>
    </form>';
    [/php]Usando come funzioni javascript:

    
    funciton precedente (n)
    {
    document.form_pagine.numerolezione = n-1;
    document.form_pagine.submit();
    }
    
    function successivo (n)
    {
    document.form_pagine.numerolezione = n+1;
    document.form_pagine.submit();
     }
    
    ```Si può anche omettere la presenza del form e delle funzioni javascript, ma la cosa diventa meno modulare e più rigida:
    
    [php]
    switch ($_GET['numerolezione'])
    {
    case 1:
            include ('pagina1.php')
            break;
     case 2:
            include ('pagina2.php')
            break;
    //........ eccetera .........
    }
    echo '<a href=index.php?numerolezione='.$_GET['numerolezione']-1.'>Indietro</a>
    <br>
    <a href=index.php?numerolezione='.$_GET['numerolezione']+1.'>Avanti</a>';
    [/php]Così si evita anche il javascript.
    
    Sarà una questione di carattere, ma io odio quando si vedono le variabili nella barra degli indirizzi, mi sa di "sporco" e poi non vogliono che sappiano i fatti miei :D

  • User Attivo

    si potrebbe usare anche un POST, però se uno vuole darti il link n on può quindi o GET oppure HTML 😄


  • User Attivo

    Dove le inserisco le funzioni JavaScript?


  • User Attivo

    nel tag
    [html]
    <head>
    <title>indice</title>
    <script>
    //funzioni javascript
    </script>
    </head>
    [/html]


  • User Attivo

    Ho provato, ma lo stesso non riesco nel mio intento.
    Allora.
    Io tengo la pagina indice.php con i collegamenti alle pagine:
    index.php(La pagina di intro alle lezioni)
    lezione1.htm
    lezione2.htm
    lezione3.htm

    La pagina indx.php contiene:
    [HTML]<html>
    <head>
    <title>indice</TITLE>
    </head>
    <body>
    <p><a href="index.php">Index</a></p>
    <p><a href="lezione1.htm">lezione1</a></p>
    <p><a href="lezione2.htm">lezione2</a></p>
    <p><a href="lezione3.htm">lezione3</a></p>
    <?php
    switch ($_GET['numerolezione'])
    {
    case 1:
    include ('lezione1.htm')
    break;
    case 2:
    include ('lezione2.htm')
    break;
    case 2:
    include ('lezione3.htm')
    break;
    echo '<form action=index.php method=GET name=form_pagine>
    <a href=javascript:precedente('.$_GET['numerolezione'].')>Indietro</a>
    <br>
    <a href=javascript:successivo('.$_GET['numerolezione'].')>Avanti</a>
    <input type=hidden name=numerolezione>
    </form>';
    ?>
    </body>[/HTML]

    Nelle pagine index.php, lezione1.htm, lezione2.htm e lezione3.htm ho racchiuso tra i tag <head> e </head> il seguente codice:

    <script>
    function precedente (n)
    {
    document.form_pagine.numerolezione = n-1;
    document.form_pagine.submit();
    }
    function successivo (n)
    {
    document.form_pagine.numerolezione = n+1;
    document.form_pagine.submit();
     }
    </script>
    

    ora, quando avvio easyphp 1.8, compare subito la pagina index.php
    IO la ignoro e scrivo nel borwser:http://localhost/indice.php
    ma mi compare la seguente frase:

    Parse error: parse error in c:\programmi\easyphp1-8\www\indice.php on line 16

    E per tutto il resto non ottengo il risultato desiderato


  • User Attivo

    Scusate, ma ho sbagliato a scrivere:Nella pagina indice.php c'è questo codice:```
    <html>
    <head>
    <title>indice</TITLE>
    </head>
    <body>
    <p><a href="index.php">Index</a></p>
    <p><a href="lezione1.htm">lezione1</a></p>
    <p><a href="lezione2.htm">lezione2</a></p>
    <p><a href="lezione3.htm">lezione3</a></p>
    <?php
    switch ($_GET['numerolezione'])
    {
    case 1:
    include ('lezione1.htm')
    break;
    case 2:
    include ('lezione2.htm')
    break;
    case 2:
    include ('lezione3.htm')
    break;
    echo '<form action=index.php method=GET name=form_pagine>
    <a href=javascript:precedente('.$_GET['numerolezione'].')>Indietro</a>
    <br>
    <a href=javascript:successivo('.$_GET['numerolezione'].')>Avanti</a>
    <input type=hidden name=numerolezione>
    </form>';
    ?>
    </body>

     
    e per tutte le altre c'è la funzione javascript

  • User Attivo

    allora, mi sa ke non sono stato tanto kiaro:

    • le funzioni javascript vanno scritte nella pagina "index.php" e non nelle altre pagine;
    • le altre pagine sono intese solo come contenitori di dati, come delle cose da visualizzare all'interno della pagina "index.php";
    • <p><a href="index.php">Index</a></p>
      <p><a href="lezione1.htm">lezione1</a></p>
      <p><a href="lezione2.htm">lezione2</a></p>
      <p><a href="lezione3.htm">lezione3</a></p> Questa parte risulta inuntile se vengono assegnati dinamicamente i link con php e javascript alla pagina successiva e precedente.

    • l'errore di sintassi è stato mio, ho mancato il ";" alla fine degli "include(...)" :sbonk:Quindi, il risultato da ottenere, dopo queste specifiche, dovrebbe essere:
      [php]
      <html>
      <head>
      <title>indice</TITLE>
      <script>
      function precedente (n)
      {
      document.form_pagine.numerolezione = n-1;
      document.form_pagine.submit();
      }
      function successivo (n)
      {
      document.form_pagine.numerolezione = n+1;
      document.form_pagine.submit();
      }
      </script>
      </head>
      <body>
      <?php
      switch ($_GET['numerolezione'])
      {
      case 1:
      include ('lezione1.htm');
      break;
      case 2:
      include ('lezione2.htm');
      break;
      case 2:
      include ('lezione3.htm');
      break;
      }
      echo '<form action=index.php method=GET name=form_pagine>
      <a href=javascript: precedente('.$_GET['numerolezione'].')>Indietro</a>
      <br>
      <a href=javascript:successivo('.$_GET['numerolezione'].')>Avanti</a>
      <input type=hidden name=numerolezione>
      </form>';
      ?>
      </body>
      </html>
      [/php]nelle pagine delle lezioni, devi solo scrivere il contenuto delle stesse, senza funzioni, senza head, senza niente...ok?
      Prova e posta...
      Momino

  • User Attivo

    Si, adesso la pagina indice.php si vede correttamente:
    image[/IMG]

    Solo che se clicco avanti o indietro non succede niente.
    Forse devo fare qualcos'altro?