我正在创建一个网络调查,以收集毕业项目/论文的数据,并将数据收集到MySQL数据库中。该网页应该做的是:受访者会看到一个单词,然后必须做出四个选择之一。三个选项是单选按钮,第四个选择是"其他"他们将有机会在文本框中输入内容。这似乎是一个相当典型的设置,但我在sql端遇到了麻烦。
问题在于,虽然网页似乎运行正常但是当我查看数据库时,没有任何单选按钮值存在 - 传递给sql server的唯一值是输入到文本中的值框(包括选中单选按钮且未在文本框中输入任何内容的空白值。
创建调查页面的代码是:
echo "<form action='insert2.php' method='post'>";
echo " <table border='1' cellpadding = '10' align = 'center'>
<tr>
<th>Num</th>
<th>Franç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>";
当我没有最终表单字段(文本框)时,一切正常。是不是可以使用单选按钮值或文本框值?
&#39; insert2.php&#39;代码如下:
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");
}
非常感谢任何帮助。我是新来的并且已经搜索了很长时间,但无济于事。
此致
马特
答案 0 :(得分: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”属性中值之后的数组括号)
看看是否能解决问题。