I valori di un modulo non possono essere passati al file di azione oppure il file di azione non può ottenere i valori dei campi nel modulo
Domanda
Questo è il codice 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;
Di seguito sono riportate le prime due righe in digitalchange.php:
$addbalance=$_POST['addbalance'];
echo "What is wrong".$addblance;
Uscite:
Cosa c'è che non va
digitalchange.php semplicemente non riesce a ottenere il valore di addbalance, ho provato $ _REQUEST, ma ancora fallito. La casella di input di addbalance non è vuota. Ma sembra che i valori della forma di digitalchange non possano essere passati a digitalchange.php. Cosa c'è che non va?
Soluzione
Vedo due cose sbagliate nel codice che hai pubblicato:
<form id="digitalchange" action="digitalchange.php?" action="post">
^
Questo dovrebbe essere method="post"
. Prova a validare il tuo HTML per trovare problemi come questo.
$addbalance=$_POST['addbalance'];
echo "What is wrong".$addblance;
^
Un semplice errore di battitura qui. Dovresti sempre controllare il tuo registro degli errori, ti avrebbe dato un avviso sull'uso di una variabile non dichiarata $addblance
.
Altri suggerimenti
prova print_r($_POST)
e print_r($_GET)
dato che probabilmente hai un refuso nel nome di un campo da qualche parte.