• User Newbie

    Passaggio variabile presa da query

    Ciao a tutti! :ciauz:
    nella pagina1 visualizzo dei dati presi dalla query e al fondo di ogni riga ho messo un pulsante per selezionare la riga che invia alla pagina2 un valore id, ma quando passo alla pagina 2 mi dice che la variabile 'valore' non è definita

    pagina1

    [PHP]<?php
    $query = "SELECT fid ........";

    $result = mysqli_query($con, $query);

    if(!$result)
    echo "<tr>\n<td>Errore ? query fallita: ".mysqli_error($con)."</td>\n</tr>\n";
    else
    {
    while($row = mysqli_fetch_array($result))

    echo
    '<tr>
    <td>' ......'</td>
    <td>' ......'</td>
    <td>' ......'</td>
    <td>
    <form action="material.php?valore=$row[fid]" method="post">
    <input name="seleziona" type="submit" value="seleziona">
    </form>
    </td>
    </tr>';
    mysqli_free_result($result);

    }

    mysqli_close($con);
    ?>
    [/PHP]

    pagina2

    [PHP]<?php
    $id = $_GET['valore'];
    .
    .
    .
    .
    .
    [/PHP]


  • Moderatore

    Perchè oscuri il codice? così non si capisce nulla.

    La cosa che è palese che stai sbagliando è che fai un POST con un form inserendo un action su un url con get dinamico (?). Come vuoi passarti il valore? tramite GET o tramite POST?


  • User Newbie

    ciao, la parte di codice che manca non l'ho messa perchè sono parti che non c'entrano niente con il problema, parti più che altro d'impostazione grafica della pagina. Il passaggio tramite POST, quindi immagino l'errore sia nell'action del form?
    In pratica premendo il pulsante "Seleziona" dovrei passare il valore contenuto in $row[fid] di quella riga scelta all'altra pagina


  • Moderatore

    Ciao, prova così:

    [PHP]
    <form action="material.php" method="post">
    <input type="hidden" name="valore" value="$row[fid]" />
    <input name="seleziona" type="submit" value="seleziona" />
    </form>
    [/PHP]

    e per leggerlo usa il $_POST al posto del $_GET

    :ciauz:


  • User Newbie

    Niente, premendo il pulsante Seleziona mi rimanda all'altra pagina ma da errore Undefined index: valore.
    Possibile che il problema sia che il form è dentro al comando echo?


  • Moderatore

    No, più probabile che non funziona value="$row[fid]"

    Prova a metterci un numero fisso e a vedere se ti arriva. Qualcosa tipo value="1"


  • User Newbie

    Niente stesso errore non passa nessun valore


  • Moderatore

    Ok, prova a togliere l'echo, metti un normalissimo form e vediamo se funziona.


  • User Newbie

    ho provato a fare una cosa del genere, mettere l'echo solo per visualizzare il dato, ma così visualizza la tabella vuota con solo il pulsante seleziona e il form continua a non passare valori

    [PHP]
    while($row = mysqli_fetch_array($result))
    ?>
    <tr>
    <td><?php echo $row['fid'] ?></td>
    <td><?php echo $row['comp_a'] ?></td>
    <td><?php echo $row['comp_b'] ?></td>
    <td>
    <form action="material.php" method="post">
    <input type="hidden" name="valore" value="1">
    <input name="seleziona" type="submit" value="Seleziona">
    </form>
    </td>
    </tr>
    <?php

    mysqli_free_result($result);
    [/PHP]


  • Moderatore

    Uhm no, adesso mi sto perdendo.
    Puoi darmi qualche altro dettaglio?


  • User Newbie

    @Shad said:

    Uhm no, adesso mi sto perdendo.
    Puoi darmi qualche altro dettaglio?
    si scusa, il codice originale era
    [PHP]
    echo '
    <tr>
    <td>' . $row['fid'] . '</td>
    <td>' . $row['comp_a'] . '</td>
    <td>' . $row['comp_b'] . '</td>
    <td>
    <form action="material.php" metod="post">
    <input type="hidden" name="valore" value="$row[fid]" />
    <input name="seleziona" type="submit" value="seleziona" />
    </form>
    </td>
    </tr>';
    [/PHP]
    e visualizza la tabella con tutti i dati e in fondo ad ogni riga c'è il pulsante "Seleziona" e tramite form dovrebbe passare id di quella riga ma non passa niente.
    Allora ho provato a usare l'echo solo per viasulizzare i dati nella tabella e mettere fuori il form, ma così facendo la tabella rimane vuota e visualizza sono il pulsante a fine riga e il form continua a non passare nessun valore.
    [PHP]
    ?>
    <tr>
    <td><?php echo $row['fid'] ?></td>
    <td><?php echo $row['comp_a'] ?></td>
    <td><?php echo $row['comp_b'] ?></td>
    <td>
    <form action="material.php" method="post">
    <input type="hidden" name="valore" value="1">
    <input name="seleziona" type="submit" value="Seleziona">
    </form>
    </td>
    </tr>
    <?php
    [/PHP]


  • Moderatore

    Fai una prova mettendo un solo form (togli il ciclo o fallo ciclare solo una volta) e vediamo che succede.


  • User Newbie

    Ho provato a togliere il ciclo in tutti e due i modi. Questa volta la riga della tabella viene visualizzata tutte e due le volte ma continua a non passare la variabile


  • Moderatore

    Non so come altro aiutarti per fare qualche prova e purtroppo non ho modo di guardare in maniera più approfondita il tuo script. Spero che qualcun altro riesca ad aiutarti meglio di me.


  • User Newbie

    Nessun problema figurati grazie lo stesso!