Les valeurs d'un formulaire ne peuvent pas être transmises au fichier d'action ou le fichier d'action ne peut pas obtenir les valeurs des champs du formulaire
Question
Ceci est le code PHP:
$html=<<<eod
<div>Your current account balance is <span style="color:red">$$balance</span></div><br/>
<form id="digitalchange" action="digitalchange.php?" action="post">
<input type="hidden" name="tid" value=$announcementid />
<table rules=all FRAME=BOX><tr><td>Balance:<span class="price">$balance</span></td><td>Current Shortfall:$shortfall</td>
<td>Unit Price:<span class="price">$$unitprice</span></td></tr>
<tr><td>Add Balance:$<input type="text" id="addbalance" name="addbalance" size="5" /></td>
<td>Add Shortall:<input type="text" id="addquota" name="addquota" size="4" /></td><td></td></tr>
<tr><td></td><td>Reduce Shortfall:<input type="text" id="reducequota" name="reducequota" size="4" /></td><td></td></tr></table>
Please click Confirm only once.
<input type="submit" value="Confirm" /></form>
<hr>
eod;
echo $html;
Ci-dessous, les deux premières lignes de digitalchange.php:
$addbalance=$_POST['addbalance'];
echo "What is wrong".$addblance;
Sorties:
Qu'est-ce qui ne va pas
digitalchange.php ne peut tout simplement pas obtenir la valeur de addbalance, j’ai essayé $ _REQUEST, mais j’ai toujours échoué. La zone de saisie de addbalance n'est pas vide. Mais il semble que les valeurs de la forme de digitalchange ne puissent pas être transmises à digitalchange.php. Quel est le problème?
La solution
Je vois deux choses qui ne vont pas dans le code que vous avez posté:
<form id="digitalchange" action="digitalchange.php?" action="post">
^
Cela devrait être method="post"
. Essayez de valider votre code HTML pour rechercher des problèmes comme celui-ci.
$addbalance=$_POST['addbalance'];
echo "What is wrong".$addblance;
^
Une simple faute de frappe ici. Vous devriez toujours vérifier votre journal des erreurs, cela vous aurait donné un avertissement concernant l'utilisation d'une variable non déclarée $addblance
.
Autres conseils
essayez print_r($_POST)
et print_r($_GET)
car vous avez probablement juste une faute de frappe dans un nom de champ quelque part.