0

我正在创建一个网络调查来收集研究生项目/论文的数据,并将数据收集到 MySQL 数据库中。该网页应该做的事情如下:受访者将看到一个单词,然后必须做出四个选择之一。三个选项是单选按钮,第四个选项是“其他”,他们将有机会在文本框中输入内容。这似乎是一个相当典型的设置,但我在 sql 端遇到了麻烦。

问题是,虽然网页似乎运行正常,但当我查看数据库时,没有任何单选按钮值存在——传递给 sql 服务器的唯一值是输入到文本框中的值(包括选中单选按钮且未在文本框中输入任何内容的空白值。

创建调查页面的代码是:

    echo "<form action='insert2.php' method='post'>";
    echo "  <table border='1' cellpadding = '10' align = 'center'>
        <tr>
        <th>Num</th>
        <th>Fran&ccedil;ais</th>
        <th>Choix 1</th>
        <th>Choix 2</th>
        <th>Choix 3</th>
        <th>Choix 4</th>
        </tr>";
for ($i=1; $i<=$total; $i++)
{
    $query = "SELECT * FROM MyDataTable WHERE id = '$i'";
    $word = $db->query($query);
    $word = $word->fetch();     
        echo "<tr>";
    echo "<td>" . "$i " . "</td>";
    echo "<td width = '300'>" . $word[1] . "</td>";
            echo "<td width = '300' align = 'center'>" . 
              " <input type='radio' name='word$i' value='one' id='wa_$i' /> " . $word[2] . "</td>";

            echo "<td width = '300' align = 'center'>" . 
              " <input type='radio' name='word$i' value='two' id='wb_$i' /> " . $word[3] . "</td>";

            echo "<td width = '300' align = 'center'>" . 
              " <input type='radio' name='word$i' value='three' id='wc_$i' /> " . $word[4] . "</td>";

            echo "<td width = '300' align = 'center'>" . 
              " autre: <input type='text' name='word$i' id='wd_$i' /> </td>";

        echo "</tr>";
     }
    echo "<br /><br />";
    echo "</table>";

当我没有最终表单字段(文本框)时,一切正常。不可能是单选按钮值或文本框值吗?

“insert2.php”代码如下:

mysql_query("INSERT INTO `MyResultsTable` (w1) VALUES ('$_POST[word1]')");

$last_id = mysql_insert_id();

for ($i=2; $i<=$total; $i++)// This loop inserts the rest of the data into the DB
{
$temp = "word$i";
if (isset($_POST[$temp]))
{
    mysql_query("UPDATE `MyResultsTable` SET w$i='$_POST[$temp]' WHERE id = $last_id");
}

任何帮助将不胜感激。我是新手,已经搜索了很长时间,但无济于事。

问候,

马特

4

1 回答 1

0

将您的收音机更改为

<input type='radio' name='word$i[]' value='one' id='wa_$i' />
<input type='radio' name='word$i[]' value='two' id='wb_$i' />
<input type='radio' name='word$i[]' value='three' id='wc_$i' />

(注意“name”属性中的值后面的数组括号)

看看能不能解决它。

于 2012-05-31T00:50:44.857 回答