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. génial (et je suis génialement con aussi).
      Pourtant j'ai déjà utilisé cette syntaxe... :-/
      Merci beaucoup avion f 16
      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. 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. 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. Avant d'envoyer le formulaire, affiches les sources et vérifie qu'il y ai bien quelque-chose dans "value".
              1. 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. 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. “Et je l'appelle alors dans le fichier php par $number=$_POST['number']; ?”
                  Oui
                  1. Le but après est en fait:

                    $number=$_POST['number'];
                    ...
                    $req = mysql_query("DELETE FROM posts WHERE id=$number")
                    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. 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.