Пожалуйста, покажите мне, как получить случайный вопрос: "$ randomQuestion" (т.е. "Какой цвет неба?" ) и соответствующий ответ $matchingAnswer
, из раздела quizID моей базы данных SQL, а затем использовать jQuery только для обновления формы? Я начал с создания формы и некоторых JavaScript, которые могут работать.
<form name="$quizID" action="http://asite.com" method="post">
<fieldset>
<legend="$randomQuestion">
<p>
<label>Answer: <input type="text" id="answer" onkeydown="submitAns(submit.id)" /></label>
</p>
</fieldset>
</form>
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 =
Это очень сложно для меня, и у меня с ним неприятности. Прокомментируйте, пожалуйста. Спасибо.
Хорошо, ваш 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>
Что касается ajax, я бы предложил использовать jQuery. Это облегчает процесс.
$.post('getqidqandanswer.php', {
quizID: 1337,
questionID: 42},
function(data) {
alert('Question is: ' + data.question)
alert('Answer is: ' + data.answer)
},
'json'
);
PHP:
$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)
<p>
было хорошо. Я только удалил это, потому что это было ненужным. Проблема заключалась в <fieldset>
тегах <label>
и <fieldset>
.
Вы уверены, что AJAX - это то, что вы ищете? Изменится ли вопрос и ответ на экземпляр страницы или они будут определены при первой загрузке страницы?