0

如果选中“小于 16”复选框,则以下代码执行 query1;如果选中“16 或更多”复选框,则执行 query2。这完美地工作。

<?php
//error_reporting (E_ALL ^ E_NOTICE);
$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";
}

echo("".$_GET['q1option']);
echo("".$q1option);

//Process Question 1
if ($q1option == "Less than 16") 
{
    $query1 = "UPDATE free_hours SET times_selected=times_selected+1 WHERE q1option='Less than 16'";
    $result1 = mysql_query($query1,$conn) or die(mysql_error());
}
if ($q1option == "16 or more") 
{
    $query2 = "UPDATE free_hours SET times_selected=times_selected+1 WHERE q1option='16 or more'";
    $result2 = mysql_query($query2,$conn) or die(mysql_error());
}

但是,当我回显 $_GET['q1option'] 时出现以下错误。

“注意:未定义的索引:第 16 行 C:\wamp\www\Student\vgs\process_answers.php 中的 q1option”

第 16 行是这样的:

echo("".$_GET['q1option']);

此外,当我回显 $q1option 时,它总是回显单词“Null”,即使选中了小于 16 并且“times_selected”值正在增加。

这里有什么问题?

谢谢你的帮助。

丹尼尔

4

2 回答 2

0

第一:包裹

echo("".$_GET['q1option']);

进入

    if(isset($_GET['q1option'])){
      echo("".$_GET['q1option']);
    }

为了摆脱通知,那么如果您的 $_GET 没有任何东西,请确保您使用或提交您的表单,并且您不会不小心尝试放置两个表单并提交另一个;)。整个代码(表单文件 + process_answers.php)在这里会有所帮助,这是肯定的。

于 2013-03-08T12:22:42.107 回答
0

问题是您没有收到GET名为q1option. 使用调试器检查您的客户端代码并确保它正在发送。

您可以通过执行以下操作来查看服务器端接收到的内容:

error_log('$_GET: '.print_r($_GET, true));

(或者,如果您在安全的环境中,您可以将其回显)。

于 2013-01-04T02:37:39.633 回答