11

オン/オフの代わりに、ラジオ ボタンがブール値 true または false を返すようにしたい

したがって、入力の値に true/false を渡します。

<label>Male
   <input type="radio" name="IsMale" value="true" />
</label> 
<label>Female
   <input type="radio" name="IsMale" value="false" />
</label>

しかし、テキスト形式で真/偽を返します。どうすればブーリーン形式で取得できますか?

詳細: 実際、$_POST 配列を file.txt に保存する必要があり、ラジオ ボタンの場合は、たとえば次のように保存する必要があります。

array ( "IsMale" => true );

ではない:

array ( "IsMale" => "true" );
4

2 に答える 2

20

データを確認して変更する必要があります。

if(isset($_POST['SubmitButton'])) { 

  $_POST['IsMale'] = $_POST['IsMale'] == 'true' ? true : false;
}
于 2012-12-20T09:25:56.220 に答える
3

ラジオ ボタンやその他のフォーム要素に PHP の true 値を直接送信させることはできません。「true」などの文字列のみを送信してください。

問題を解決するには、PHP ファイルの $_POST 項目の値を変更する必要があります。

//Form has been submitted
if(isset($_POST['submit'])) {

    //Radio button has been set to "true"
    if(isset($_POST['IsMale']) && $_POST['IsMale'] == 'true') $_POST['IsMale'] = TRUE;

    //Radio button has been set to "false" or a value was not selected
    else $_POST['IsMale'] = FALSE;

}

編集:ベンは、より短い代替手段である三項演算子を使用した機能的なソリューションを提供しました。上記の例は、プロセスで何が行われているのかを (より詳細な形式で) 明確にすることができます。

于 2012-12-20T09:29:26.717 に答える