【问题标题】:Javascript and PHP quiz based on the questions which are in the database基于数据库中问题的 Javascript 和 PHP 测验
【发布时间】:2020-06-13 04:16:00
【问题描述】:

我正在开发一个在线测验,让用户通过单击几个单选按钮来回答问题。 我希望程序使用数据库中的问题。我已经通过 PHP 创建了连接,但它没有正确传递到 javascript 代码。


<body>

  <?php
$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'root';
$DATABASE_PASS = '';
$DATABASE_NAME = 'psych';

$connect = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);

    $res = mysqli_query($connect, "SELECT questions FROM questions") or die( mysqli_error($connect));
;
    $quests = mysqli_fetch_array($res);  
    // echo "Quest0=$quests[0]";
      $scores=array();
      $i = "0";

        while($row = mysqli_fetch_array($res))
    {
       $arr[$i] = $row['questions'];
       $i++;

     }

  ?>
<div id="quiz"></div>
<br>
<button id="submit">Calculate</button>
<h4 id="message"></h4>


<br><br>

<div id="results"></div>



<script type="text/javascript">

const submitButton = document.getElementById('submit');

const array = <?php echo json_encode($arr); ?>; 



// Display the array elements 
for(var i = 0; i < array.length; i++){ 
    const myQuestions=[ {(array[i])}]; 
    //document.write(myQuestions[i]);
   //console.log(myQuestions[j]);
   displayArrayObjects(myQuestions);

} 

function displayArrayObjects(arrayObjects) {
        var len = arrayObjects.length, text = "";

        for (var i = 0; i < len; i++) {
            var myObject = arrayObjects[i];

            for (var x in myObject) {
                text += ( myObject[x] );
            }
            text += "<br/>";
        }

        document.getElementById("message").innerHTML = text;
    }

//const Myanswers = [a: "answer A", b: "answer B" ];

     const answers = [{ answers: {
          a: "answer A",
          b: "answer B"
        },
          answerA: "a",
          answerB: "b"
        },];



【问题讨论】:

  • $arr 是否获取数据?
  • 是的,确实如此。我想。当我取消注释 //document.write(myQuestions);它确实显示了数据库中的数据
  • 您缺少脚本结束标记。你能确认一下吗?
  • 是的,它就在那里。仅当我使用 document.write(); 时才会显示数据;没有其他工作
  • 人们通常会从数据库中选择更多信息,而不仅仅是问题的文本

标签: javascript php html mysql algorithm


【解决方案1】:

您有一些语法错误。


<body>

<?php
    $arr = array('q1','q2','q3');
?>
<div id="quiz"></div>
<br>
<button id="submit">Calculate</button>
<h4 id="message"></h4>


<br><br>

<div id="results"></div>



<script type="text/javascript">

const submitButton = document.getElementById('submit');

const array = <?php echo json_encode($arr); ?>; 



  let myQuestions = [];
// Display the array elements 
for(var i = 0; i < array.length; i++){ 
   myQuestions.push(array[i]); 
  //document.write(myQuestions[i]);
}
 console.log(myQuestions);
 displayArrayObjects(myQuestions);

function displayArrayObjects(arrayObjects) {
      var len = arrayObjects.length, text = "";

      for (var i = 0; i < len; i++) {
          var myObject = arrayObjects[i];

          for (var x in myObject) {
              text += ( myObject[x] );
          }
          text += "<br/>";
      }

      document.getElementById("message").innerHTML = text;
  }

//const Myanswers = [a: "answer A", b: "answer B" ];

   const answers = [{ answers: {
        a: "answer A",
        b: "answer B"
      },
        answerA: "a",
        answerB: "b"
      },];

</script>

【讨论】:

  • 非常感谢你,伙计!这些问题正在发挥作用。但问题是它总是跳过数据库中的第一个条目
  • 另外,您能帮我显示问题下方的单选按钮吗?他们应该是答案,我应该根据他们给出的答案为他们计算一个值。听起来你可以帮助我吗?你是救生员!
  • 解决了吗?也不要介意,您的响应时间需要更快。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
  • 2015-03-03
  • 2021-05-06
  • 1970-01-01
相关资源
最近更新 更多