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>'; 
    2
    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
      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
        1. génial (et je suis génialement con aussi).
          Pourtant j'ai déjà utilisé cette syntaxe... :-/
          Merci beaucoup avion f 16
          1
          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.
            0
            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 ; ?>" /> 
              0
              1. Ce que je sous-entendais avec “Avec un simple echo en PHP pour donner la valeur au champ”
                0
              2. Et je l'appelle alors dans le fichier php par

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

              $number=$_POST['number'];
              ...
              $req = mysql_query("DELETE FROM posts WHERE id=$number")
              0
              1. “Et je l'appelle alors dans le fichier php par $number=$_POST['number']; ?”
                Oui
                0
                1. si j'entre $number=12; ça marche mais
                  $_POST['number'] est vide à chaque fois...
                  0
                  1. Même après l'envoie du formulaire ?
                    Ton champ est-il bien entre <form method="post" action="qlqchose.php"> et </form> ?
                    0
                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
                  0
                  1. Avant d'envoyer le formulaire, affiches les sources et vérifie qu'il y ai bien quelque-chose dans "value".
                    0
                    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 ?
                      0