Se ti vai a vedere le specifiche HTML per i form noterai che le variabili post il browser deve spedirle SOLO se hanno successo. Ciò significa per i radio input o per i checkbox che devono essere checkati altrimenti non hai la variabile.
http://www.w3.org/TR/REC-html40/interact/forms.html
Un modo per risolvere il problema potrebbe essere questo:
nello script che riceve i POST sai già che variabili dovrebbero arrivarti, quindi ipotizzando che in $_POST ci siano 'var1' e 'var2':
oppure sapendo tutte le chiavi che ti arrivano:codice:// copio post $in = $_POST; // se non esiste la chiave la setto come vuota. if (!array_key_exists('var1' $in)) $in['var1'] = null; if (!array_key_exists('var2' $in)) $in['var2'] = null;
oppure ancora potresti risolvere la cosa lato HTML.codice:// array che contiene tutte le variabili che dovrebbero arrivare $dummy = array('var1', 'var2); // copio post $in = $_POST; //ciclo i nomi delle variabili foreach($dummy as $key) { if (!array_key_exists($key, $in)) $in[$key] = null; }
Nel form PRIMA dell'input radio metti un input hidden con lo stesso nome:
Se selezioni il radio la variabile POST var1 è sovrascritta altrimenti ha il valore di value che hai settato nell'input hidden.codice:<input type="hidden" name="var1" value="default"...> <input type="radio" name="var1" ...>
Ciao
Yuri

Rispondi quotando