0

グッドデイマスターズ!

はいまたはいいえ (チェックボックス) で回答できる調査 Web ページがあります。

CheckBox をクリックして調査をカウントし、データベースに保存したいと考えています。これは私のコードです...

  <label> Did you find this helpful? </label>
    <input type="radio" name="question" value="yes">YES</input>
    <input type="radio" name="question" value="no">NO</input>
    <?php 
    $fieldname = $_GET['question'];
    if($fieldname == 'YES' ){
        mssql_query("update TBL_SURVEY SET YES = YES + 1 WHERE adddate = (SELECT max(adddate) FROM TBL_SURVEY)");
    }else{
        mssql_query("update TBL_SURVEY SET NO = NO + 1 WHERE adddate = (SELECT max(adddate) FROM TBL_SURVEY)");
    }
?>

ただし、「通知:未定義のインデックス:質問」というエラーが発生します

JavaScript または ajax を使用する必要がありますか? または、コーディングを混ぜただけですか?私のコードの何が問題なのですか?

このコードをトリガーしてデータベースを更新するにはどうすればよいですか??

4

3 に答える 3

2

未定義のインデックスエラーがここに来ています

$fieldname = $_GET['question'];

この通知のようなコードを変更した場合、通知は来ないはずです

<?php 
 if(isset($_GET['question'])) { 
    $fieldname = $_GET['question'];
    if($fieldname == 'YES' ){
        mssql_query("update TBL_SURVEY SET YES = YES + 1 WHERE adddate = (SELECT max(adddate) FROM TBL_SURVEY)");
    }else{
        mssql_query("update TBL_SURVEY SET NO = NO + 1 WHERE adddate = (SELECT max(adddate) FROM TBL_SURVEY)");
   }
}
?>
于 2013-10-29T09:44:04.940 に答える
0

一般に、 GETメソッドの代わりにPOSTを使用して、保護されたデータまたはブックマークできないデータを送信する必要があります。フォームのラジオ ボタンが有効であり、それらをグループ化するために同じ名前を持っていることを確認してください。HTML :

<form id="myform" action="form_process.php" method="post">
  <div>
    <label>Did you find this helpful? </label>
    <input type="radio" name="question" value="1" />YES
    <input type="radio" name="question" value="0" />NO
    <input type="submit" value="Send" />
 </div>
</form>



PHP form_process.php の例:

<?php
    // Include your database connection code

    if (isset($_POST[question])) {
    // If checkbox was chosen...
        $fieldname = filter_input(INPUT_POST, $_POST['question'], FILTER_VALIDATE_BOOLEAN);
    }

    if ($fieldname == TRUE){
        // Code to run when 'YES' selected
        mssql_query("update TBL_SURVEY SET YES = YES + 1 WHERE adddate = (SELECT max(adddate) FROM TBL_SURVEY)");
    } else if ($fieldname == FALSE) {
        // Code to run when 'NO' selected
        mssql_query("update TBL_SURVEY SET NO = NO + 1 WHERE adddate = (SELECT max(adddate) FROM TBL_SURVEY)");
    } else {
        // Data was not validated correctly
    }
?>


私はこのコードをテストしませんでしたが、これは一般的な考え方です。クエリをテストして、データが正しく保存されていることを確認してください (データベース スキーマ、コード、または情報は提供されていません)。

于 2013-10-30T11:18:45.097 に答える