Как получить доступ к значению метки в php? - PullRequest
0 голосов
/ 10 августа 2011

Я пытаюсь создать набор математических вопросов для веб-сайта, где пользователю будет дано уравнение, и он должен написать ответ в форме.

Моя 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) Значение, которое Label имеет от функции echo rand () и б) как получить код для хранения их в виде переменных и вывода на экран?

PS: я должен сделать это на стороне php, и я знаю, что это может быть выполнимо с Javascript / Jquery.

Заранее благодарю за помощь.

Варуна

Ответы [ 5 ]

2 голосов
/ 10 августа 2011

Превратите места, в которых вы просто выводите число, в текстовые вводы только для чтения, тогда значения будут отправлены обратно при отправке формы (я предполагаю, что это часть более крупной формы, поскольку вы не используете 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 для стилизации этих входных данных таким образом, чтобы они выглядели просто как встроенный текст.

1 голос
/ 10 августа 2011

Кроме 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" />
0 голосов
/ 10 августа 2011

Вы не можете. Вам нужно будет поместить случайные значения в скрытые поля:

<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" />

Кроме того, я не думаю, что вы хотите использовать элементы label здесь. в HTML метки не такие, как в системах пользовательского интерфейса: в HTML они должны быть прикреплены к элементу управления.

0 голосов
/ 10 августа 2011

Используйте переменные для хранения случайных значений и скрытые поля для отправки их с формой.

<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>

Да, я использую короткие теги. Если вы этого не сделаете, просто замените

0 голосов
/ 10 августа 2011

Вы не можете получить содержимое метки только с помощью PHP, вы можете отправить его через JS в скрипт php или сохранить эти числа в скрытых полях, но это будет означать, что человек может довольно легко изменить значения скрытых полей , Я бы посоветовал вам сделать это, чтобы сохранить случайные числа в сеансе пользователя, чтобы у вас был полный контроль над ним после отправки ответа или обновления страницы.

...