PHP:通过$ _POST提交表单数据适用于除单选按钮

时间:2015-06-19 13:44:09

标签: php forms post radio-button

我是PHP新手,希望有人可以帮助我。

我有一个包含大量输入和textareas的HTML表单。在提交时,我将表单传递给另一个PHP页面,该页面生成一个包含其值的电子邮件。

对于文本输入和textareas,一切都按预期工作,但对于单选按钮,我无法让它向我显示目标页面上的值。

单选按钮看起来如下,那里使用的类只是应用一些CSS。 提交页面上只有一个表单,所有无线电都具有相同的名称(“requestType”),并且没有其他元素使用此名称。
此外,我添加了一个快速JavaScript代码段,用于测试以提醒他们对更改的价值,这也很有效,所以问题似乎只有$_POST

有人可以告诉我这里我做错了什么,或者我可以尝试哪些替代方案?

我的HTML(在提交页面上):

<input type="radio" class="customRadio radioDefault" id="requestType1" name="requestType" value="Value1" />
    <label for="requestType1">Value1</label>
<input type="radio" class="customRadio triggerDiv" id="requestType2" name="requestType" value="Value2" />
    <label for="requestType2">Value2</label>

我的PHP(在目标页面上):

$_POST["requestType"]

更新
根据RiggsFolly我尝试检查它是否识别出一个单选按钮被检查它看起来是什么,它只是不返回任何东西,因为以下只返回“xx”:

if(isset($_POST['requestType'])){
    $theSelectedOne = $_POST['requestType'];
    echo "radio value: x" . $theSelectedOne . "x";
}else{
    echo "boohoo";
}

1 个答案:

答案 0 :(得分:2)

单选按钮(和复选框)仅在$ _POST或$ _GET数组中传递回表单(如果实际检查它们)。我注意到在创建HTML时不会自动检查其中一个,因此如果用户没有选择,则不会返回任何内容。

因此测试它们是否被检查的最佳方法是在$ _POST数组中测试它们的名称是否存在

if ( isset( $_POST['requestType'] ) ) {
    // a selection was made
    // so now test the value to see which one was checked
    $theSelectedOne = $_POST['requestType'];
}