Php 请帮我获取$randomQ和$matchinA,如果键入了$matchinA,请让jQuery刷新?

Php 请帮我获取$randomQ和$matchinA,如果键入了$matchinA,请让jQuery刷新?,php,javascript,mysql,jquery,Php,Javascript,Mysql,Jquery,请告诉我如何从SQL数据库的quizID部分获取随机问题“$randomQuestion”(即“天空是什么颜色?”)和匹配答案“$matchingAnswer”,然后仅使用jQuery刷新表单?我首先创建了表单和一些可以工作的JavaScript 表格: JQUERY: PHP: 函数随机_行($table,$column){ $max\u sql=“选择最大值(“.$column.”) 作为max_id 从$table开始; $max_row=mysql_fetch_数组(mysql_查询(

请告诉我如何从SQL数据库的quizID部分获取随机问题“$randomQuestion”(即“天空是什么颜色?”)和匹配答案“
$matchingAnswer
”,然后仅使用jQuery刷新表单?我首先创建了表单和一些可以工作的JavaScript

表格: JQUERY: PHP:

函数随机_行($table,$column){
$max\u sql=“选择最大值(“.$column.”)
作为max_id
从$table开始;
$max_row=mysql_fetch_数组(mysql_查询($max_sql));
$random_number=mt_rand(1,$max_row['max_id']);
$random\u sql=“从“$table”中选择*。”
其中,“$column.”>=“$random\u number。”
按“$column”ASC订购
限制1”;
$random_row=mysql_fetch_row(mysql_查询($random_sql));
如果(!是数组($random\u row)){
$random\u sql=“从“$table”中选择*。”
其中“$column.”<“$random\u number。”
按“$column”排序。说明
限制1”;
$random_row=mysql_fetch_row(mysql_查询($random_sql));
}
返回$random_行;
}
$RANDOM问题=
$matchinaswer=

这对我来说是非常复杂的,我一直有很多麻烦。请发表评论。谢谢。

首先,您的HTML无效:您没有关闭标记:

<form name="$quizID" action="http://asite.com" method="post">
    <fieldset>
        <legend><?php echo $randomQuestion?></legend>
        <label>
            Answer: <input type="text" id="answer"
                           onkeydown="submitAns(submit.id)" />
        </label>
    </fieldset>
</form>
PHP:


你确定你要找的是AJAX吗?问题和答案是否会在页面实例中更改,还是在第一次加载页面时确定?

My bad。w3文档,显示标签周围的。我不确定它是否美观。所以,我希望你可以谨慎一点吗?
很好。我只是把它拿走了,因为它是不必要的。问题是未关闭的
标记。使用jQuery就可以了。我遇到的问题是“如何在不按“提交”按钮的情况下检查数据库中的值,提交,但仍然不刷新页面?”XD当文本输入中的答案与数据库中列出的答案匹配时,它应该提交,该答案与数据库中的Q相关联。我甚至不确定是否应该关闭,尽管标签、图例和字段集绝对应该是。我在看4.10版的表单文档(链接在上面),它们并没有在那个里关闭它。输入是自动关闭的,至少在XHTML中是这样。虽然在HTML中,但不关闭它是有效的。随机问题应该通过ajax选择,还是由PHP提供是可以接受的?由PHP提供是可以的。如果我之前不清楚,我很抱歉。我没有看到这个评论。重要的是它的功能:在不刷新整页的情况下加载一个新问题。谢谢你的回答,埃里克。:)它们将在实例中更改。非常感谢。
function submitAns(id) {
  if (document.getElementById(id).value=="$matchingAnswer")
          document.a.submit();
}
$.post('get-question_matchinganswer_for_quizID.php', {
  quizID: $quizID,
  question },
  function(data) {
    alert('Question is: ' + data.question)
    alert('Answer is: ' + data.answer)
  },
  'json'
);
<!-- Help -->
function random_row($table, $column) {
  $max_sql = "SELECT max(" . $column . ") 
          AS max_id
          FROM " . $table;
  $max_row = mysql_fetch_array(mysql_query($max_sql));
  $random_number = mt_rand(1, $max_row['max_id']);
  $random_sql = "SELECT * FROM " . $table . "
          WHERE " . $column . " >= " . $random_number . " 
          ORDER BY " . $column . " ASC
          LIMIT 1";
  $random_row = mysql_fetch_row(mysql_query($random_sql));
  if (!is_array($random_row)) {
    $random_sql = "SELECT * FROM " . $table . "
            WHERE " . $column . " < " . $random_number . " 
            ORDER BY " . $column . " DESC
            LIMIT 1";

    $random_row = mysql_fetch_row(mysql_query($random_sql));
  }
  return $random_row;
}

$randomQuestion =
$matchinAnswer =
<form name="$quizID" action="http://asite.com" method="post">
    <fieldset>
        <legend><?php echo $randomQuestion?></legend>
        <label>
            Answer: <input type="text" id="answer"
                           onkeydown="submitAns(submit.id)" />
        </label>
    </fieldset>
</form>
$.post('getqidqandanswer.php', {
    quizID: 1337,
    questionID: 42},
    function(data) {
        alert('Question is: ' + data.question)
        alert('Answer is: ' + data.answer)
    },
    'json'
);
$quizID = isset($_POST['quizID']) ? $_POST['quizID'] : null
$questionID = isset($_POST['questionID']) ? $_POST['questionID'] : null

if($quizID && $questionID)
{
   $data = getQuestionData($quizID, $questionID)
}
elseif($quizID)
{
   $data = getRandomQuestionData($quizID)
}
else
{
    $data = array(
        'question' => '',
        'answer'   => ''
    )
}

echo json_encode($data)