Envoyer une variable avec input hidden

Résolu
Bonjour,
J'ai recherché sur le web mais je n'ai rien trouvé qui puisse résoudre mon problème bien qu'il soit fort simple:
Quelle est la syntaxe pour envoyer une variable ($id en l'occurence) avec input hidden?
J'ai éssayé toutes les variantes de

<input type="hidden" name="number" value="$id" />

mais ça ne passe pas.

Merci d'avance
Configuration: Linux Fedora
Firefox 3.5.5

12 réponses

  1. Fallait le dire que tu étais déjà dans un echo.
    Voilà :
    echo '<form action="deletetext.php" method="post">
    <input type="submit" value="delete" />
    <input type="hidden" name="number" value="'.$id.'" />
    </form>'; 
    1. Avec un simple echo en PHP pour donner la valeur au champ, et ensuite $_POST['nom_du_champ'] comme pour n'importe quel champ contiendra la valeur du champ.
      1. il faut aussi que dans ton formulaire tu mettes en PHP la partie affectation de la variable au parametre value

        <input type="hidden" name="number" value="<?php echo $id ; ?>" /> 
        1. Ce que je sous-entendais avec “Avec un simple echo en PHP pour donner la valeur au champ”
        2. Et je l'appelle alors dans le fichier php par

          $number=$_POST['number']; ?
      2. Le but après est en fait:

        $number=$_POST['number'];
        ...
        $req = mysql_query("DELETE FROM posts WHERE id=$number")
        1. “Et je l'appelle alors dans le fichier php par $number=$_POST['number']; ?”
          Oui
          1. si j'entre $number=12; ça marche mais
            $_POST['number'] est vide à chaque fois...
            1. Même après l'envoie du formulaire ?
              Ton champ est-il bien entre <form method="post" action="qlqchose.php"> et </form> ?
          2. merci pour l'aide

            <form action="deletetext.php" method="post">
            <input type="submit" value="delete" />
            <input type="hidden" name="number" value="<?php echo $id ; ?>" />
            </form>';

            oui il l'est
            1. Avant d'envoyer le formulaire, affiches les sources et vérifie qu'il y ai bien quelque-chose dans "value".
              1. non ça ne renvoit rien :(
                pourtant $id n'est pas vide.
                De plus si je mets manuellement
                $_POST['number']=13; ça ne marche pas non plus...
                1. Donc on a 2 problèmes :
                  - Le variable $id ne contient rien lors de l'echo dans l'attribut value du input : es-tu sûr de bien l'avoir déclarée quelque-part ?
                  - La suppression ne se fait pas, même si $_POST['number'] a été défini manuellement : une erreur ? es-tu connecté à la bdd ? L'enregistrement ayant 13 dans le champ "id" existe-t-il bien ?
                  1. Tu écris dans le futur avion-f16? :)
                    En fait si je mets

                    <input type="hidden" name="number" value=5 />

                    ça marche mais avec

                    <input type="hidden" name="number" value="<?php echo $id ; ?>" />

                    non. Voici le code environnant:

                    ...
                    while($data = mysql_fetch_assoc($req))
                    {
                    $login= $data['login'];
                    $text= $data['text'];
                    $id= $data['id'];

                    echo'<table>
                    <tr>
                    <td>Nr. '.$id.' </td>
                    <td> de '.$login.'</td>
                    </tr>
                    </table>';

                    echo '<div class="textbox"><p>'.$text.'</p></div>';

                    echo '<form action="deletetext.php" method="post">
                    <input type="submit" value="delete" />
                    <input type="hidden" name="number" value="<?php echo $id ; ?>" />
                    </form>';
                    }
                    ...
                    1. génial (et je suis génialement con aussi).
                      Pourtant j'ai déjà utilisé cette syntaxe... :-/
                      Merci beaucoup avion f 16