Создал скрипт который должен реагировать на нажатие кнопки (с произвольным именем из 1 символа), однако при выполнении ничего не происходит и возвращается ошибка:
Notice: Undefined index: name in /var/ex/index.php on line 5.
Код:
<form action="" method="POST">
<p><button type="submit" name="1" class="btn">1</button></p>
</form>
<?php
if ( isset ( $_POST[((preg_match('(.)',$_POST['name'])))] ) )
{
echo 'Кнопка нажата!';
}
?>
<button type="submit" name="testClick" class="btn">Проверка нажатия</button>
Вы кнопке объявили name="1"
, а на сервере проверяете приход неведомой кнопки или поля $_POST['name']
!
Это вообще сказка)
if ( isset ( $_POST[((preg_match('(.)',$_POST['name'])))] ) )
Error: There is 1 predefined variables that should be treated as an ['array']:
Если вы так будите проверять 20 полей, то вскоре сами запутаетесь что делаете. Универсальная проверка:
if ( isset ( $_POST['testClick'] ) ) {
# do something, for example:
echo 'Ура! Кнопка нажата!';
}
UPD решение вашей задачи (сохраните как index.php
):
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
mb_internal_encoding("UTF-8");
if ( isset ( $_POST['testClick'] ) ) {
# do something, for example:
echo 'Ура! Кнопка нажата!';
echo $_POST['testClick'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="" method="post">
<button type="submit" name="testClick" class="btn" value="1"> Кнопка 1</button>
</form>
</body>
</html>
Если вам надо много кнопок, то каждой кнопке вешаем класс и пишем скрипт который меняет значение кнопки в форме:
$('body').on('click', '.check', function(e){
e.preventDefault();
$('button[name="testClick"]').val( $(this).val() );
});
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
mb_internal_encoding("UTF-8");
if ( isset ( $_POST['testClick'] ) ) {
# do something, for example:
echo 'Ура! Кнопка нажата!';
echo $_POST['testClick'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<button type="submit" name="check1" class="btn check" value="1"> Кнопка 1</button>
<button type="submit" name="check2" class="btn check" value="2"> Кнопка 2</button>
<button type="submit" name="check3" class="btn check" value="3"> Кнопка 3</button>
<button type="submit" name="check4" class="btn check" value="4"> Кнопка 4</button>
<form action="" method="post">
<button type="submit" name="testClick" class="btn" value=""> Кнопка 1</button>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>
Имя у вашего button -> "1" а вы пытаетесь его получить как "name", value вообще не указан
и лучше уж использовать чем пытаться получить value из button
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем привет, имеется данный код на PHP, который парсит контент с одной страницыА как вывести например, контент с разных страниц
написал рекурсивную реализацию поиска в глубину, которая отлично работает: