Я пытаюсь создать математический вопрос, заданный для веб-сайта, где пользователю будет дано уравнение, и они должны написать ответ в форме.
Мой HTML-код выглядит так:
<p> Please write the sum of these two numbers </p> <label for="num1">Number1: <?php echo rand(2,200)?> <label for="num2">Number2: <?php echo rand(2,200)?> <input name="sum" type="text" />
Я хочу, чтобы проверить, введен ли правильная сумма двух значений, которые были сгенерированы. Это просто общая точка. В конечном итоге это приведет к появлению большего числа переменных и разных математических операторов
Как сделать следующее со скриптом на стороне сервера PHP:
a) Значение, которое имеет метка от функции echo rand (), и b) как мне получить код для хранения их в качестве переменных и вывода на экран?
PS: Я должен делать это на стороне php, и я знаю, что это может быть сделано с Javascript / JQuery.
Спасибо заранее за вашу помощь.
Варуна
Javascript в стороне, вы не можете получить доступ к чему-либо, относящемуся к <label>
, самый простой способ (помимо использования данных сеанса) – использовать <input>
.
Вы захотите объявить значение один раз , так что вы не получите другое значение, отображаемое пользователю, чем то, что хранится во входе. Быстрый пример:
<?php $num1 = rand(2,200); $num2 = rand(2,200); ?> <p> Please write the sum of these two numbers </p> <label for="num1"> Number1: <?php echo $num1; ?> <input name="num1" type="hidden" value="<?php echo $num1; ?>" /> </label> <label for="num2"> Number2: <?php echo $num2; ?> <input name="num2" type="hidden" value="<?php echo $num2; ?>" /> </label> <input name="sum" type="text" />
Поверните места, в которых вы просто повторяете число, в текстовые входы только для чтения, тогда значения будут отправляться обратно при отправке формы (я предполагаю, что это часть более крупной формы, поскольку вы не используете js).
<p> Please write the sum of these two numbers </p> <label for="num1">Number1:</label> <input id="num1" name="num1" type="text" value="<?php echo rand(2,200)?>" readonly="readonly" /> <label for="num2">Number2:</label> <input id="num2" name="num2" type="text" value="<?php echo rand(2,200)?>" readonly="readonly" /> <input name="sum" type="text" />
Вы можете использовать CSS для стилизации этих входов, чтобы они выглядели скорее как встроенный текст.
Вы не можете получить содержимое ярлыков только с помощью PHP, вы можете отправить его через JS на php-скрипт или сохранить эти числа в скрытых полях, но это будет означать, что человек может легко изменить значения скрытых полей. То, как я предлагаю вам сделать это, – сохранить случайные числа в пользовательском сеансе, чтобы вы могли полностью контролировать его после отправки ответа или обновления страницы.
Используйте переменные для хранения случайных значений и скрытых полей, чтобы отправить их в форме.
<form action="results.php" method="get"> <p> Please write the sum of these two numbers </p> <? $var1 = rand(2,200); $var2 = rand(2,200); ?> <input type="hidden" name="operand1" value="<?= $var1 ?>" /> <input type="hidden" name="operand2" value="<?= $var2 ?>" /> <label for="num1">Number1: <?=$var1?> </label> <label for="num2">Number2: <?=$var2?> </label> <input name="sum" type="text" /> <input type="submit" value="submit" /> </form>
Да, я использую короткие теги. Если вы этого не сделаете, просто замените
Вы не можете. Вам нужно будет поместить случайные значения в скрытые поля:
<p> Please write the sum of these two numbers </p> <?php $Value1 = rand(2, 200); $Value2 = rand(2, 200); ?> Number1: <?php echo $Value1; ?> Number2: <?php echo $Value2; ?> <input type="hidden" name="Value1" value="<?php echo $Value1; ?>" /> <input type="hidden" name="Value2" value="<?php echo $Value2; ?>" /> <input name="sum" type="text" />
Кроме того, я не думаю, что вы хотите использовать элементы ярлыков здесь. метки не совпадают в HTML, как то, что вы найдете в пользовательских интерфейсах: в HTML они должны быть прикреплены к элементу управления.