0

有谁知道为什么这段代码不起作用?我只是想打印选择了哪个单选按钮。无论选择什么,它总是打印“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');
}
4

2 回答 2

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>
于 2013-01-03T15:34:50.377 回答
0

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

采取以下代码:

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

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

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

于 2013-01-03T15:52:11.613 回答