У меня есть фрагмент кода, в котором я хочу, чтобы форма появлялась при нажатии кнопки «Новый игрок».Моя проблема заключается в том, что когда я нажимаю на кнопку отправки в форме, код проверки не запускается.Я не уверен, как заставить функцию сохранить контроль.
Исходная кнопка New Player вызывает внешний скрипт PHP
echo "<form action = '', method = 'post'>";
echo "<button name = 'showPF', type = 'submit', value = 'New Player'>New Player</button></br>";
echo "</form>";
if(isset( $_POST['showPF'])) {
require(__DIR__.'/new_player.php');
}
Затем отображается форма и, в свою очередь, вызывает функцию.Эта функция является частью, которая никогда не выполняется.
echo "<form action = '' method='post'>";
echo "Player Name: <input type='text' name='playerName'></br>";
echo "Character Name: <input type='text' name ='charName'></br>";
echo "Class: <input type='text' name = 'class'></br>";
echo "Race: <input type='text' name = 'race'></br>";
echo "Level: <input type = 'int' name = 'level'></br>";
echo "<button name='add', type = 'submit', value = 'Add Player'>Add Player</button></br>";
echo "</form>";
if(isset($_POST['add'])){
addPlayer();
}
Функция addPlayer () выглядит как
function addPlayer(){
//PLAYER NAME
if(empty($_POST['playerName'])){
//Player Name is required
echo "Player Name is required";
}
elseif(ctype_alpha(str_replace(' ','', $_POST['playerName'])) == FALSE){
//Player Name can only be letters and spaces
echo "Player Name can only contain letters and spaces";
}
else{
$playerName = $_POST['playerName'];
}
//CHARACTER NAME
if(empty($_POST['charName'])){
$charName = "NULL";
}
elseif(ctype_alpha(str_replace(' ','', $_POST['charName'])) == FALSE){
//Character Name can only be letters and spaces
echo "Character Name can only contain letters and spaces";
}
else{
$charName = $_POST['charName'];
}
//CLASS
if(empty($_POST['class'])){
$charClass = "NULL";
}
elseif(ctype_alpha(str_replace(' ','', $_POST['class'])) == FALSE){
//Class can only be letters and spaces
echo "Class can only contain letters and spaces";
}
else{
$charClass = $_POST['class'];
}
//RACE
if(empty($_POST['race'])){
$charRace = "NULL";
}
if(ctype_alpha(str_replace(' ','', $_POST['race'])) == FALSE){
//Race can only be letters and spaces
echo "Race can only contain letters and spaces";
}
else{
$charRace= $_POST['race'];
}
//LEVEL
if(empty($_POST['level'])){
$charLvl = "NULL";
}
if(ctype_digit($_POST['level']) == FALSE){
//Level must be a number
echo "Level must be a number";
}
else{
$charLvl= (int)$_POST['lvl'];
}
}
Поскольку я не знаю, почему она не завершает второй оператор if IЯ не уверен, как Google мой ответ.И я знаю, что мой код не очень красив.Я переучиваюсь после 10+ лет вне школы.К сожалению, я не знаю, где еще задать такой вопрос новичку.
Спасибо за ваше время.