Visualizzazione risultati 1 fino 8 di 8

Discussione: menu a tendina

  1. #1
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito menu a tendina

    Buongiorno chiedo scusa se richiedo aiuto e chiedo scusa per il disturbo che vi dò ho creato un nenù a tendina
    Codice HTML:
    <form action="prova.php">
          <label for="lang"></label>
          <select name="id" value="id">
    <option value="2">Afghanistan</option>
    <option value="3">Agalega and St Brandon</option>
    <option value="4">Aland Islands</option>
    <option value="5">Alaska</option>
    <option value="6">Albania</option>
    <option value="9">Algeria</option>
    <option value="7">American Samoa</option>
    <option value="8">Amsterdam and St Paul Islands</option>
       </select>
          <input type="submit" value="Submit" />
    </form>
    e senza problemi apre la pagina che seleziono dal menu per (http://ik0yuo.altervista.org/dxcc/prova.php?id=4)
    le copio il codice nella cartella page qundo seleziono dal menu una voce l'indirizzo dovrebbe essere così: ( http://ik0yuo.altervista.org/?page=prova&id=4 )
    invece è così http://ik0yuo.altervista.org/?%3Fpage%3Dprova%26id=238
    ho provato a sostituire form action="?page=prova"> e e sul ID ?page=prova%id ma non sono riuscito a risolvere grazie in anticipo del vostro aiuto
    Carlo
    Ultima modifica di dreadnaut : 08-03-2024 alle ore 11.35.01 Motivo: + tag [html] attorno al codice

  2. #2
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    49

    Predefinito

    Ciao, vediamo se ho capito cosa vuoi fare.
    Dal form collegato al menu a tendina, una select, leggi un valore che trasmetti ad un form php che
    legge questo valore,seleziona dei dati e carica una pagina dinamica nella quale sono visualizzate le informazioni
    desiderate, è questo che vuoi fare ?.
    A proposito, vedo che nel form non indichi il metodo di trasmissione dei dati, POST o GET, non sono sicuro sia buona cosa.

    Io nel mio sito faccio così: invio i dati, con GET, alla pagina dinamica nella quale voglio mostrare le informazioni collegate al parametro inviato, in php leggo e filtro il parametro (parametri), costruisco la query di selezione, la eseguo, assegnando ad un array (facciamo PIPPO) il risultato e a questo punto sono pronto a visualizzare i dati che voglio nella pagina con le normali istruzioni php.

    Codice PHP:
    <p class="...">La città si chiama : <?php echo htmlentities($PIPPO['nom campo']);?></p>
    <img src="<?php echo htmlentities($PIPPO['nom campo']);?>
    etc etc.

    Spero di esserti stato d'aiuto, qualora quanto scritto non si chiaro non esitare a chiedere spiegazioni.
    Ultima modifica di dreadnaut : 08-03-2024 alle ore 11.35.47 Motivo: + tag [php] attorno al codice

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    La differenza che vedo è che nell'esempio hai
    Codice HTML:
    <select name="id" value="id">
    mentre nella pagina c'è
    Codice HTML:
    <select name="?page=prova&id" value="id">
    Quel ?page=prova& in più diventa parte del nome del campo, e viene codificato nel %3Fpage%3Dprova%26 che appare quando invii il form.

    Non influisce sul tuo problema, ma c'è anche un <label for="lang"></label> li vicino che non contiene nulla.


    @kairos2020
    Scorciatoia: invece di <?php echo $qualcosa; ?> puoi usare <?= $qualcosa ?>.
    Ultima modifica di dreadnaut : 08-03-2024 alle ore 11.45.00

  4. #4
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito

    Ciao Grazie delle risposte scusate se rispondo ora ma ero a lavoro, kairos2020 il file che ho creato va selezionando nel menu la voce mi da un risultato che preleva dal database, il problema è che se nella barra dei indirizzi http://ik0yuo.altervista.org/?page=prova&id=1 lo scrimo a mano va ma se seleziono dal menu mi da http://ik0yuo.altervista.org/?%3Fpage%3Dprova%26id=286 e non è corretto.
    L'avatar di dreadnut grazie del suggerimento ma scusami ma non ho capito come fare se gentimente mi dai un'amato ti ringrazio molto e scusate del disturbo

    Carlo

  5. #5
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    49

    Predefinito

    @dreadnautdreadnaut, grazie per il suggerimento, ho la pessima abitudine di mischiare le due sintassi, sono un grande pasticcione.

    Carlo devi scusarmi ma non capisco il problema, ed è certamente colpa mia quindi abbi pazienza, credo che ci sia qualcosa di 'strano' nel file prova.php cui invii i dati dovresti postarlo, non credo siano molte righe.

    Inoltre il codice HTML
    Codice HTML:
    form action="prova.php">
          <label for="lang"></label>
          <select name="id" value="id">
          <option value="2">Afghanistan</option>
    value="id" che significato ha ?, tu passi come valore un stringa con un numero, id che valore ha, per quanto ne so io il value viene utilizzato per passare un valore di default alla select, valore di solito compreso nelle opzioni, in tal modo si può da codice selezionare un valore specifico nel range disponibile.

    Non appena 'muovi' la select il valore cambia a quello appena slezionato il metod POST o quello GET, non cambia, passano il value dell'option selezionato, quello che vedi nella riga della select.

    Detto questo credo tu abbia un problema di encoding nella trasmissione della get :

    http://ik0yuo.altervista.org/?page=prova&id=1 dovrebbe corrispondere a :
    http%3A%2F%2Fik0yuo.altervista.org%2F%3Fpage%3Dpro va%26id%3D1

    tu hai :
    http://ik0yuo.altervista.org/?%3Fpage%3Dprova%26id=286 che decodificato diventa :
    (la stringa ?%3F indica ?+ la codifica di ?, non va bene)

    http://ik0yuo.altervista.org/??page=prova&id=286, indirizzo non valido, come detto hai ?? invece di una, e il valore di id = 286 invece di 1.

    Ripeto credo che il problema sia nello script prova.php dove immagino tu utilizzi header('Location: <nome form>) ;exit;

    Spero solo di non averti confuso ancor di più, ma se posti il php vediamo di farlo funzionare.
    Ciao

  6. #6
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito

    Buongiorno Kairos grazie per la tua disponibilità, ti copio il codice,

    Codice PHP:
    <?php
    include('../classes/config.php');
    ?>

    <!DOCTYPE html>
    <html lang="it">
    <head>
    <meta charset="UTF-8">
    <title>ik0yuo per radioamatori</title>
    <div>
    <div>

    <?php

    $id
    = $_GET['id'];

    // preparazione della query
    $sql = "SELECT * FROM country WHERE id = $id";

    //esecuzione della quesry
    $result = $conn->query($sql);

    //se ci sono righe
    if ($result->num_rows >0) {
    $row = $result->fetch_assoc();
    $id = $row['id'];
    $name = $row['name'];

    }
    ?>
    <strong class="d-block"></strong>
    <small><tbody>
    <div class="card mb-3" style="width: 100%" >
    <nav class="navbar navbar-dark navbar-expand navbar-dark" style="background-color: #7b8a8b;"></nav>
    </nav>
    <div class="card-body">
    <div class="card border-primary mb-3" style="max-width: 50rem;">
    <center>
    <form action="prova.php">
    <label for="lang"></label>
    <select name="id" value="id">
    <option value="2">Afghanistan</option>
    <option value="3">Agalega and St Brandon</option>
    <option value="4">Aland Islands</option>
    <option value="5">Alaska</option>
    <option value="6">Albania</option>
    <option value="9">Algeria</option>
    <option value="7">American Samoa</option>
    <option value="8">Amsterdam and St Paul Islands</option>
    <option value="10">Andaman and Nicobar Islands</option>
    <option value="11">Andorra</option>
    </select>
    <input type="submit" value="Submit" />
    </form>
    <div class="card-body text-primary">
    <h5 class="card-title"></h5>
    <div class="container">
    <table class="table table-bordered">
    <tbody>
    <tr>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>Country:&nbsp;&nbsp;<?php echo $row['name'];?></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>DXCC:&nbsp;&nbsp;<?php echo $row['dxcc'];?></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>Prefisso:&nbsp;&nbsp;<?php echo $row['prefisso'];?></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>Continente:&nbsp;&nbsp;<?php echo $row['continent'];?></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>Itu:&nbsp;&nbsp;<?php echo $row['itu'];?></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td>Waz:&nbsp;&nbsp;<?php echo $row['cq'];?></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <td><img src="<?php echo $row['bandiera'];?>" width="100" height="100" border="0" /></td>
    </tr>
    <tr>
    </tr>
    <tr>
    <br>
    </tbody>
    </table>
    <center>
    <script>!function(d,l,e,s,c){e=d.createElement("script");e.src="//ad.altervista.org/js.ad/size=300X250/?ref="+encodeURIComponent(l.hostname+l.pathname)+"&r="+Date.now();s=d.scripts;c=d.currentScript||s[s.length-1];c.parentNode.insertBefore(e,c)}(document,location)</script>
    </div>
    <br>
    </div>
    </table>
    </div>

    </div>
    </div>

    </tbody></small>
    </div>
    </a>

    </nav>
    <div class="col-4">

    </div>
    </body>
    </html>

    grazie in anticipo

    Carlo
    Ultima modifica di alemoppo : 09-03-2024 alle ore 13.29.54 Motivo: +tag [php]

  7. #7
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    49

    Predefinito

    Ciao, ho fatto una simulazione con il form che mi hai inviato, a parte il suggerirti di utilizzare PDO, o mySQLI, eil frammento di codice che metto sotto, per me funziona, il passaggio del parametro ricevuto dal form è, sul mio computer, sempre corretto.

    Ho riletto nuovamente il tuo primo post e francamente non sono riuscito, colpa mia, a capire bene il tuo problema, in ogni caso a me funziona.

    Ho visto il codice della tua pagina http://ik0yuo.altervista.org/dxcc/prova.php?id=4, ti suggerisco di usare questo codice per la select, è molto più comodo da scrivere e sopratutto se agiungi nuovi record o li modifichi non dovrai cambiare uan riga di codice.

    Crea un array con i valori della tabella nazioni :
    $sql = "SELECT * FROM country ORDER BY <NOME CAMPO NAZIONE>";
    che assegni ( come già fai ) a $row e nel form invece delle n option della select scrivi :


    Codice PHP:

    <select class="form-control" name='id' required>
    <?php
    foreach ( $row as $righe) { ?>
    <option value=<?php echo $riga['nazioneID'];?>>
    <?php echo $riga['nazioneNome'] ?>
    </option> <?php } ?>
    </select>
    puoi usare anche una sintassi diversa utilizzando sempre php e echo, ma la sostanza non cambia, 6 righe. invece di ...

    Se hai il link del tuo sito dove si verifica l'errore sarebbe più semplice capire il problema.

  8. #8
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito

    Ciao kairos2020 Grazie dei suggerimenti e per la disponibilità ti posto il codice che ho fatto e va benissimo
    Codice PHP:
    <!DOCTYPE html>
    <html>
    <head>
    <title>Elenco DXCC</title>
    </head>
    <body>
    <h2>Seleziona un Country</h2>
    <form action="risultato.php" method="post">
    <?php
    $conn
    = new mysqli("localhost", "root", "", "XXXXXXXX");
    if(
    $conn->connect_error) {
    die(
    "Connessione al db fallita: " . $conn->connect_error);
    }

    $query_sql = "SELECT * FROM country;";
    $risultato = $conn->query($query_sql);

    if (
    $risultato == FALSE) {
    die(
    "Errore nell'esecuzione della query: " . $query_sql);
    }

    echo
    "<select name='country'>";

    while (
    $riga = $risultato->fetch_assoc()) {
    $id = $riga["id"];
    $name = $riga["name"];

    echo
    "<option value='$id'>
    $name
    </option>"
    ;
    }

    echo
    "</select>";
    $conn->close();
    ?>

    <input type="submit" name="invia" value="Cerca Country">

    </form>
    </body>
    </html>
    se vuoi vedere sul mio sito lo trovi qui
    http://ik0yuo.altervista.org/?page=dxcc

    una vola selezionato la voce nel menu va in un'altra pagina dove ci sono i risultati
    Grazie mille per l'aiuto e sicuramente riscriverò per altri problemi o dubbi buona domenica a tutti
    Carlo
    Ultima modifica di dreadnaut : 10-03-2024 alle ore 20.08.41 Motivo: + tag [php]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •