0

卒業プロジェクト/論文のデータを収集するための Web 調査を作成しており、そのデータを MySQL データベースに収集しています。Web ページが行うべきことは次のとおりです。回答者は単語を見て、4 つの選択肢から 1 つを選択する必要があります。3 つの選択肢はラジオ ボタンで、4 つ目の選択肢は「その他」で、テキスト ボックスに何かを入力する機会があります。これはかなり典型的なセットアップのようですが、SQL の最後で問題が発生しています。

問題は、Web ページは適切に機能しているように見えますが、データベースを見ると、ラジオ ボタンの値がまったく表示されないことです。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 に答える