51 votes

Définition de la variable POST sans utiliser le formulaire

Existe-t-il un moyen de définir un $_POST['var'] sans utiliser le champ lié au formulaire (pas de type='hidden') et en utilisant uniquement PHP. Quelque chose comme

$_POST['name'] = "Denniss";

Y a-t-il un moyen de le faire ?

EDIT : Quelqu'un m'a demandé des précisions à ce sujet. Par exemple, j'ai une page avec un formulaire. Le formulaire ressemble à ceci

<form method='post' action='next.php'>
<input type='text' name='text' value='' />
<input type='submit' name='submit' value='Submit'/>
</form>

Une fois que le bouton d'envoi est cliqué, je veux être redirigé vers next.php. Existe-t-il un moyen pour moi de définir la variable $_POST['text'] sur une autre valeur ? Comment puis-je rendre cette variable persistante de sorte que lorsque je clique sur un autre bouton d'envoi (par exemple), la variable $_POST['text'] sera celle que j'ai définie dans next.php sans utiliser de champ caché ?

Faites-moi savoir si cela n'est toujours pas clair et merci pour votre aide.

77voto

Sarfraz Points 168484

Oui, il suffit de lui donner une autre valeur :

$_POST['text'] = 'another value';

Cela remplacera la valeur précédente correspondant à text du tableau. Le site $_POST est super-mondiale tableau associatif et vous pouvez modifier les valeurs comme un tableau PHP normal .

Attention : Ce changement n'est visible que dans le même périmètre d'exécution de PHP. Une fois l'exécution terminée et la page chargée, l'objet $_POST est effacée. Une nouvelle soumission de formulaire génère un nouveau $_POST le tableau.

Si vous souhaitez faire persister la valeur entre plusieurs soumissions de formulaire, vous devrez la placer dans le formulaire sous la forme d'une balise input de l'étiquette value ou l'extraire d'un magasin de données.

6voto

Rakward Points 916

Si vous voulez définir $_POST['text'] à une autre valeur, pourquoi ne pas utiliser :

$_POST['text'] = $var;

sur next.php ?

3voto

stillstanding Points 10346

Vous pouvez le faire en utilisant ajax ou en envoyant des en-têtes http+contenu comme :

POST /xyz.php HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme

1voto

joan16v Points 161

Vous pouvez le faire en utilisant jQuery. Exemple :

<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>

<script>
    $.ajax({
        url : "next.php",
        type: "POST",
        data : "name=Denniss",
        success: function(data)
        {
            //data - response from server
            $('#response_div').html(data);
        }
    });
</script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X