1

PHP関数は初めてで、現在、データベーステーブルを調べてテーブルフォーマットと呼ばれる列を調べるifステートメントを作成しようとしています。このテーブルは、クイズの質問の書式設定オプションが保存される場所です。たとえば、質問の回答をドロップダウン メニューとして表示する場合は、クイズの質問を追加するときにそのオプションを選択し、それがデータベースから引き出されるときに、という形になります。

現在、if ステートメントは次のようになっています。

    <?php
    // Lookup Question Format & Format Using Function //
    $questionformat="SELECT * FROM itsnb_chronoforms_data_createquestions WHERE questionID='$questionID'";
    $questionformatresult =mysql_query($questionformat);
    while ($formatrow = mysql_fetch_array($questionformatresult)){
    $format = $formatrow['questionformat']; }

            if ($format == 'questionformatdropmenu')
            {dropdownmenu ();
            }
            else
            {}

     ?> 

フォーマット関数は次のようになります。

<?php
    // Question formatting functions //

    // Dropdown Menu
    function dropdownmenu(){

    echo '<select id="quizselectanswer" name="quizselectanswer" title="quizselectanswer">';

    $sql="SELECT * FROM itsnb_chronoforms_data_createquestions WHERE questionID='$questionID'";
    $result2 =mysql_query($sql);
    while ($data = mysql_fetch_array($result2)){

      echo '<option value ="' . $data['quizanswer1'] . '" >' . $data['quizanswer1'] . '</option>';
      echo '<option value ="' . $data['quizanswer2'] . '" >' . $data['quizanswer2'] . '</option>';
      echo '<option value ="' . $data['quizanswer3'] . '" >' . $data['quizanswer3'] . '</option>';
      echo '<option value ="' . $data['quizanswer4'] . '" >' . $data['quizanswer4'] . '</option>';
        }
      echo '</select>';
      }
    // Question formatting functions END //
    ?>

私が抱えている問題は、関数がドロップダウン リスト メニューを正常に作成していることですが、関数からコードを取り出して通常どおり実行すると、何らかの理由でデータが入力されず、ドロップダウン メニューが空白になることです。すべてが期待どおりに機能し、メニューに回答が表示されます。

4

1 に答える 1

1

$questionIDスコープ外の変数にアクセスしようとしています。関数に渡してみてください。

// Dropdown Menu
function dropdownmenu ( $questionID ) {
  echo '<select id="quizselectanswer" name="quizselectanswer" title="quizselectanswer">';

  $sql="SELECT * FROM itsnb_chronoforms_data_createquestions WHERE questionID='$questionID'";
  $result2 =mysql_query($sql);

  while ( $data = mysql_fetch_array( $result2 ) ) {
    echo '<option value ="' . $data['quizanswer1'] . '" >' . $data['quizanswer1'] . '</option>';
    echo '<option value ="' . $data['quizanswer2'] . '" >' . $data['quizanswer2'] . '</option>';
    echo '<option value ="' . $data['quizanswer3'] . '" >' . $data['quizanswer3'] . '</option>';
    echo '<option value ="' . $data['quizanswer4'] . '" >' . $data['quizanswer4'] . '</option>';
  }

  echo '</select>';
}

次に、次のように最初のループから関数を呼び出します。

dropdownmenu($questionID)
于 2012-11-30T15:34:37.853 に答える