HTML — PHP: изменение значения метки

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

<div>
<form style="margin-left: 30%; margin-right: 30%; margin-bottom:5%">
Score:
<input type="number" name="score"><br>
<input type="submit" name="Submit" class="btn btn-primary" action="calcScore">
<input type="submit" name="Cancel" class="btn btn-primary" value="Cancel">
</form>
<span>
<label class="scorePlate"><?php echo $player1Score?></label>
<label class="scorePlate"><?php echo $player2Score?></label>
</span>

и функция PHP:

function calcScore()
{
$playerThrow = $_GET["score"];
$player1Score = $playerThrow;
}

Может кто-нибудь объяснить, почему это ничего не меняет, когда я отправляю номер?

1

Решение

Если ты звонишь calcScore() непосредственно со страницы, а не из внешнего файла, тогда вам нужно назвать его так:

<input type="submit" name="Submit" class="btn btn-primary" action="calcScore()">

Если вы вызываете его из внешнего файла, вам, вероятно, потребуется вызвать функцию внутри файла, например, так:

function calcScore()
{
$playerThrow = $_GET["score"];
$player1Score = $playerThrow;
}
calcScore();
1

Другие решения

Вы используете неверный атрибут from во входном теге submit. Изменить ниже строки

<input type="submit" name="Submit" class="btn btn-primary" action="calcScore">

с

<input type="submit" name="Submit" class="btn btn-primary" formaction="calcScore">

Форма более подробно о входном атрибуте formaction: http://www.w3schools.com/tags/att_input_formaction.asp

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

1

Если ваш URL был в форме: site.com?player1=12&player2 = 15
Тогда мы могли бы сделать следующий код, чтобы получить оба:

function calcScore($score)
{
$playerThrow = $_GET[$score];
return $playerThrow;
}

<label class="scorePlate"><?php echo calcScore(player1) ?></label>
<label class="scorePlate"><?php echo calcScore(player2) ?></label>

Это может быть не совсем так, как ваш URL-адрес настроен, но показывает, как вам нужно это сделать. Вы должны возвращать значение из функции (или просто не использовать функцию, чтобы можно было получить доступ к $ playerThrow)

0
По вопросам рекламы [email protected]