$ _GET无法使用单选按钮

时间:2013-01-03 15:17:15

标签: php forms get radio-button

有谁知道为什么这段代码不起作用?我只是想打印选择哪个单选按钮。无论选择什么,它总是打印'Null'。 PHP代码如下。

<?php
$conn = mysql_connect('localhost','student','student') or die(mysql_error());
mysql_select_db('vgs',$conn);

//Get Question 1
if (isset($_GET["q1option"])) 
{
    $q1option = $_GET["q1option"];
} 
else 
{
    $q1option = "Null";
}
//Process Question 1
echo "".$q1option;

HTML代码如下。

<form action="" method="get" >
<div id="Q1">
<label><input type="radio" name="q1option" value="Less_than_16" />Less than 16</label><br />
<label><input type="radio" name="q1option" value="16_or_more" />16 or more</label>
</div>

对此的任何帮助将不胜感激。注意我在'vgs'数据库中有很多表,如果这有所不同。

谢谢,

丹尼尔

附加代码

HTML下面

<input type="button" value="Submit" onclick="result();" />
<input type="reset" value="Reset" />
</form>

下面的嵌入式JavaScript。它使用http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

function result()
{
    $('#Suggestion').load('process_answers.php');
}

2 个答案:

答案 0 :(得分:1)

看起来您的提交按钮位于<form>标记之外,它应位于以下格式中:

<form action="" method="get" >
<div id="Q1">
<label><input type="radio" name="q1option" value="Less_than_16" />Less than 16</label><br />
<label><input type="radio" name="q1option" value="16_or_more" />16 or more</label>
</div>

<input type="submit" value="Submit" />
</form>

答案 1 :(得分:0)

您总是得到Null作为回报,因为您的查询字符串未附加到任何地方。如果您使用的是AJAX,则需要传递查询字符串数据。由于配置错误,您的周期无法正常工作。

请使用以下代码:

//Get Question 1
if (isset($_GET["q1option"])) 
{
    $q1option = $_GET["q1option"];
} 
else 
{
    $q1option = "Null";
}

使用$ _GET将尝试从查询字符串中提取标记为“q1option”的变量。如果未设置此变量,则返回“Null”。因此,您的代码按照目前的结构正常运行。

如果要在页面之间传递变量,则需要提交表单,变量将自动传递,或者您需要修改jQuery以允许在变量的幕后传递和处理。处理完毕后,您将相应地处理结果并根据需要将它们呈现给客户端。