我关于这个的最后一个问题建议我将 AJAX 与 PHP 结合起来。但是,我真的很想专门为这个项目尝试 PHP,而且我似乎已经完成了大约 95%。我只需要在这一问题上的帮助。
这是一个快速的背景。我的项目需要一个动态表单来填充最多 10 个问题。每个表单包含一个问题、一个问题编号和一个文本字段。学生会继续回答问题。这一切都是由数据库表驱动的(显然),当一个问题得到正确回答时,它将关闭并出现下一个问题。页面上总会有 10 个问题。这是编码的外观,它完美地工作。
<?
$rt = mysql_query("SELECT * FROM The_Questions WHERE Status='Open' ORDER BY 'Number' LIMIT 10");
while ($row = mysql_fetch_array($rt)) {
$number=$row[0];
$category = $row[1];
$question=$row[2];
$points=$row[4];
$_SESSION['number'] = $number;
?>
<form action="processor.php" method="post" class="qForm">
<div class="questionCell">
<div class="question"><? echo $number; echo $question ?></div>
<div class="answer">Answer: <input class="inputField" name="q1" type="text" size="40" maxlength="40" />
<input name="HHQuestion" value="Submit" type="submit" /></div>
</div>
</form>
<?
}
?>
这些问题按照正确的顺序和正确的限制出现。在问题得到回答并通过 processor.php 操作进行处理之前,一切似乎都很好。首先是 processor.php 文件的代码:
<?php
session_start();
if(isset($_POST["HHQuestion"])){
$dbhost = 'localhost';
$dbname = 'localhost';
$dbuser = 'localhost';
$dbpass = 'localhost';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $conn);
{
$number1 = $_SESSION['number'];
$answer=$_POST['q1'];
$sql="SELECT * FROM The_Questions WHERE Number='$number1'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$question = $row[2];
echo $question .'<br>';
echo $number1.'<br>';
echo $answer;
}
}
?>
这还没有上线,出于测试目的,我正在重复问题、问题编号和答案(如您所见)。发生的事情是 $question 和 $number1 显示数组中的最后一个问题($answer 显示正确,这意味着它显示了以动态形式编写的任何内容)。
谁能告诉我这是为什么?如果我将 LIMIT 数字更改为 20,则 processor.php 操作将显示第 20 个问题和数字,即使我正在回答问题 8,例如以动态形式。同样,动态表单正在正确显示,并且编号正确。出于某种我不知道的原因,操作 - processor.php - 正在抓取数组中的最后一个问题。
关于我做错了什么的任何想法?我希望这是一个我忽略的简单代码更改。提前谢谢各位!