Est-il possible de définir un $_POST['var']
sans utiliser de champ lié au formulaire (pas de type = 'caché') et en utilisant uniquement PHP. Quelque chose comme
$_POST['name'] = "Denniss";
Y a-t-il un moyen de faire cela?
EDIT: Quelqu'un m'a demandé des précisions à ce sujet. Ainsi, par exemple, j'ai une page avec un formulaire dessus, 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. Est-il possible pour moi de définir la variable $ _POST ['text'] sur une autre valeur? Comment rendre cette tâche persistante afin que lorsque je clique sur un autre bouton de soumission (par exemple), le $ _POST ['text'] sera ce que je définis sur next.php sans utiliser de champ caché.
Faites-moi savoir si ce n'est toujours pas clair et merci pour votre aide.
Oui, définissez simplement une autre valeur:
$_POST['text'] = 'another value';
Ceci remplacera la valeur précédente correspondant à la clé text
du tableau. Le $_POST
Est superglobal tableau associatif et vous pouvez modifier les valeurs comme un tableau normal PHP.
Attention: Cette modification n'est visible que dans la même portée d'exécution PHP. Une fois l'exécution terminée et la page chargée, le tableau $_POST
Est effacé. Une nouvelle soumission de formulaire générera un nouveau tableau $_POST
.
Si vous souhaitez conserver la valeur dans les soumissions de formulaire, vous devez la placer dans le formulaire sous la forme d'un attribut input
d'une balise value
ou la récupérer à partir d'un magasin de données.
Si vous souhaitez définir $ _POST ['text'] sur une autre valeur, pourquoi ne pas utiliser:
$_POST['text'] = $var;
sur next.php?
vous pouvez le faire en utilisant ajax ou en envoyant des en-têtes http + du 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
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>