Привет, ребята Мне было интересно, можете ли вы помочь мне с увеличением переменной оценки внутри моего кода. В настоящее время я программирую онлайн-викторину с использованием php и хочу, чтобы оценка увеличивалась на 1 каждый раз, когда они выбирают кнопку отправки, а конкретный переключатель установлен, но когда переменная передается на страницу результатов, она появляется как 0Приращение переменной счетчика php через функцию javascript
главная страница викторины
<?php session_start(); ?>
<html>
<head>
<title> World Cup Quiz </title>
</head>
<script>
function Score()
{
if(document.getElementById('correct_answer').checked)
{
<?
$_SESSION['score']=$userScore]+1;
?>
}
else if(document.getElementById('wrong_answer1').checked)
{
//Wrong 1 radio button is checked
}
else if(document.getElementById('wrong_answer2').checked)
{
//Wrong 2 radio button is checked
}
else if(document.getElementById('wrong_answer3').checked)
{
//Wrong 3 radio button is checked
}
}
</script>
<body>
<div align = center><strong> World Cup Quiz</strong></div>
<br />
<div align =center>
<?php
include ("dbConnect.php");
if (!isset($_SESSION['number']))
{
$_SESSION['number']=1;
}
if (!isset($_SESSION['score']))
{
$_SESSION['score']=0;
}
$questionNumber = $_SESSION['number'];
$userScore=$_SESSION['score'];
$number= rand(1,4);
//search database for generated number and match ID
$dbQuery= "SELECT * FROM `questions 1.0` WHERE `ID` =$number";
$dbResult=mysql_query($dbQuery);
echo "Question:".$questionNumber."/5<br>";
//Assign variables to each attribute
while ($dbRow=mysql_fetch_array($dbResult))
{
if ($_SESSION['number']>5)
{
header("Location: results.php");
$_SESSION['number']=1;
break;
}
$theID=$dbRow["ID"];
$theQuestion=$dbRow["Question"];
$theAnswer1=$dbRow["Correct Answer"];
$theAnswer2=$dbRow["Wrong Answer 1"];
$theAnswer3=$dbRow["Wrong Answer 2"];
$theAnswer4=$dbRow["Wrong Answer 3"];
$_SESSION['number']=$questionNumber+1;
}
//Print Questions and Answers
echo '<strong>'."$theQuestion".'</strong><br>';
?> <form name="correctAnswer" form method="post" action="quiz.php" onSubmit="Score()">
<?php
echo "$theAnswer1";?> <input type="radio" id="correct_answer" name="correctAnswer">
<?php
echo "<br>$theAnswer2"; ?> <input type="radio" id="wrong_answer1" name="wrongAnswer1">
<?php
echo "<br>$theAnswer3"; ?> <input type="radio" id="wrong_answer2" name="wrongAnswer2">
<?php
echo "<br>$theAnswer4"; ?> <input type="radio" id="wrong_answer3" name="wrongAnswer3">
<input type="hidden" name="score" value="userScore">
<br><input type="submit" value="Submit Answer">
</form>
</div>
</body>
</html>
И страница результатов
<?php session_start(); ?>
<html>
</head>
<title> Result</title>
<body>
<?php
$score=$_SESSION['score'];
echo "Congratulations you scored $score /5"
?>
<form action="menu.php">
<input type="submit" value="Return to Main Menu">
</form>
</body>
</html>
Надеется, что вы можете помочь
Благодарности
$ _SESSION [ 'оценка'] = $ userScore] + 1; должен быть $ _SESSION ['score'] = $ userScore + 1; может быть ? – Maximus2012
Вы не можете смешивать JS и PHP, как это. PHP в этой функции будет выполняться один раз (когда запрашивается страница). JS будет выполняться при указании и ничего не делать (поскольку он не может «видеть» код PHP) – kero
Вам нужно понять разницу между программированием CLIENT и SERVER. События пользовательского интерфейса происходят на клиенте (JS), и события PHP происходят на сервере. Вы не можете смешивать код клиента и сервера и ожидать, что они будут работать так, как вы показываете. –