PHP
을 사용하여 온라인 퀴즈 시스템을 만들고 있는데, 질문과 옵션 및 답변을 데이터베이스의 테이블에 저장했습니다. html 페이지에서 while 루프를 통해 질문과 옵션을 인쇄합니다 (옵션은 라디오 버튼 임). 라디오 버튼 값을 PHP
으로 보내는 방법을 배웠지 만, 제가 직면 한 문제는 첫 번째 질문에 대해 선택된 옵션 만 PHP
으로 전송된다는 것입니다. 예를 들어 데이터베이스에 두 개의 질문을 저장하고 while 루프를 사용하여 페이지에 인쇄 한 경우 question1
및 option2
을 question2
으로 입력하고 제출을 클릭하면 option1
이 PHP
에 게시됩니다. , 선택한 다른 단추 값은 손실됩니다. 나는이 모든 값들이 답이 맞으면 데이터베이스를 통해 확인하고 정답에 따라 점수를 표시하기를 원합니다.
여기 내 HTML 페이지의 코드입니다. 전체 코드를 게시하고 있지만, <form>
태그 만 확인하면됩니다.
<body>
<?php
include('connect.php');
$sql="Select * FROM html";
$record=mysql_query($sql);
?>
<div id="container">
<div class="header">
<span class="heading"><span class="C">O</span>NLINE <span
class="C">Q</span>UIZ <span class="C">S</span>YSTEM </span>
<div class="logo"><img src="img/flogo.png" width="188" height="150"
alt="logo"></div>
</div>
<div class="center">
<nav>
<ul>
<li style="margin-right:180px; height:50px;width:auto"><a
href="home.php">Username</a></li>
<li><a href="Shome.php">Home</a></li>
<li><a href="results.php">Results</a></li>
<li><a href="welcome.php">Sign Out</a></li>
</ul>
</nav>
<div id="page-wrap">
<h1>HTML Quiz </h1>
<form action="results.php" method="post" id="quiz">
<ol>
<li>
<?php
while($result=mysql_fetch_assoc($record))
{
echo "<form>";
echo "<h3>";
echo "".$result['id'].". ".$result['question']."";
echo "</h3>";
echo '<input type="radio" name="answer[]" id="question-1-answer-
A" value="A" />';
echo '<label for="question-1-answer-A">';
echo "".$result['option1']."";
echo "</label>";
echo '<input type="radio" name="answer[]" id="question-1-answer-
B" value="B" />';
echo '<label for="question-1-answer-B">';
echo "".$result['option2']."";
echo "</label>";
echo '<input type="radio" name="answer[]" id="question-1-answer-
C" value="C" />';
echo '<label for="question-1-answer-C">';
echo "".$result['option3']."";
echo "</label>";
echo '<input type="radio" name="answer[]" id="question-1-answer-
D" value="D" />';
echo '<label for="question-1-answer-D">';
echo "".$result['option4']."";
echo "</label>";
echo "</form>";
}
echo '<input type="Submit" value="Submit" name="submit" />';
?>
</li>
</ol>
</form>
</div>
</div>
<div class="footer">
<footer></footer> </div>
</div>
</body>
그리고 results.php
<?php
include('connect.php');
$sql="Select * FROM html";
$record=mysql_query($sql);
$result=mysql_fetch_assoc($record);
$total=0;
foreach($_POST['answer'] as $check) {
echo $check;
}
echo "YOUR SCORE: ".$total;
?>
내가 아는이는 foreach
부분이 증가합니다 이것을 합계 다음 데이터베이스에서 답에 모든 답을 확인하는 데 사용됩니다, 파일이 지금 아무것도하지 않는 결과는 지금 볼 수있는 코드는 얼마나 많은 값이 PHP
으로 보내지는지 확인하는 것입니다. 내가 제출을 클릭하면 현재 내가 6 질문 및 모든 질문에 대한 옵션을 선택한 후 인쇄 한, 그것은
AYOURSCORE: 0
여기
'A' "질문 1"에서 선택한 옵션의 가치, 값을 표시합니다 다른 질문은 사라집니다. 내가 직면 한 주요 쟁점은 무엇인가.
이 프로젝트를 2 일 안에 제출해야하므로 도움을 주시면 대단히 감사하겠습니다. 감사합니다.
P.S. 나는 PHP에 익숙하지 않으며 자바 스크립트에 대한 지식이 거의 없거나 전혀 없다.
데이터베이스 및 데이터베이스의 구조에 삽입하는 코드를 표시하는 데 도움이됩니다. – Vladut
*** [mysql_ * 함수 사용을 중단하십시오] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) *** [이 확장 기능 ] (http://php.net/manual/en/migration70.removed-exts-sapis.php)가 PHP 7에서 삭제되었습니다. [prepared] (http://en.wikipedia.org/wiki/Prepared_statement)에 대해 알아보십시오.) [PDO] (http://php.net/manual/en/pdo.prepared-statements.php)와 [MySQLi] (http : // php.net/manual/en/mysqli.quickstart.prepared-statements.php) PDO를 사용하는 것을 고려해보십시오. [매우 쉽습니다] (http://jayblanchard.net/demystifying_php_pdo.html). –