Прежде всего, это мой первый вопрос по stackoverflow. Это отличное место, чтобы получить ответы на чужие проблемы. Но на этот раз я не смог найти ответ на свой, поэтому мой вопрос ниже ...
У меня точно такая же проблема, как описано в этом вопросе: Простая форма не отправляет данные через _POST
Это точно такая же проблема: даже var_dump($_POST);
показывает мне это: array(0) { }
и попытка доступа к переданным данным дает мне Notice: Undefined index
Я чесал голову за последние 2 дня.
Мой код:
<form action="" method="POST" id="test">
<label for="email">Email</label><br>
<input type="text" name="email" id="email" value=""><br>
<input class="btn btn-primary btn-lg btn-block mb-5" type="submit" name="save-company-button" id="save-company-button" value="SAVE">
</form>
Это самая простая форма, и она все еще не работает. Я не понимаю почему.
Заранее спасибо за вашу помощь.
EDIT:
Содержимое представления:
<?php
$siteroot = SITEROOT;
// Metadata
$meta_data_title = "About us";
// Page title
$main_title = "About us";
// Additional CSS to the main CSS (bootstrap.css and custom-style.css)
$other_css = "";
// Javascript
ob_start();
require "viewAboutUs/viewAboutUs-javascript.php";
$javascript = ob_get_clean();
// Breadcrumb
$breadcrumb = "<li class=\"breadcrumb-item\"><a href=\"$siteroot\">Home</a></li>
<li class=\"breadcrumb-item active\" aria-current=\"page\">About us</li>";
// Main content
ob_start();
require "viewAboutUs/viewAboutUs-content.php";
$main_content = ob_get_clean();
// Javascript at the bottom
$javascript_bottom = "";
// Template file
require "template.php"
?>
Содержимое viewAboutUs-content. php:
<form action="" method="POST" id="test">
<label for="email">Email</label><br>
<input type="text" name="email" id="email" value=""><br><br>
<input class="btn btn-primary btn-lg btn-block mb-5" type="submit" name="save-company-button" id="save-company-button" value="SAVE">
</form>
Файл viewAboutUs-javascript.php
пуст.
Содержимое контроллера displayAboutUs. php:
<?php
function displayAboutUs() {
var_dump($_POST);
echo "Test: " . $_POST["email"] . "<br>";
if (isset($_POST["save-company-button"])) {
echo "Button clicked ! <br>";
}
require VIEWS_FOLDER . "/pages/viewAboutUs.php";
}
?>
Извините за время для предоставления кода, я обнаружил интерфейс stackoverflow ...
EDIT # 1
Если я скопирую и вставлю элементы в простой файл php, который я помещаю в свою папку / public /, он будет работать без проблем.
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
var_dump($_POST);
echo "Test: " . $_POST["email"] . "<br>";
if (isset($_POST["save-company-button"])) {
echo "Button clicked ! <br>";
}
?>
<form action="" method="POST" id="test">
<label for="email">Email</label><br>
<input type="text" name="email" id="email" value=""><br><br>
<input type="submit" class="btn btn-primary btn-lg btn-block mb-5" name="save-company-button" id="save-company-button" value="SAVE">
</form>
</body>
</html>
Единственное, что изменится в этом случае, это то, что на этот раз я использую bootstrap. В противном случае все мои формы работали бы идеально так, как до сих пор был организован мой код.
EDIT # 2
После многократного просмотра моего кода единственный вывод, который я пришел к выводу, что проблема должна быть расположена в коде HTML самой формы. Что-то может отсутствовать в атрибутах тега формы и / или одного из тегов ввода, потому что текущие оставшиеся атрибуты являются минимальным.
Если кто-то является экспертом HTML5, это может быть полезно. ..
EDIT # 3
Кажется, все указывает на то, что то, что я пишу в моем EDIT # 2, правильно, потому что если я сделаю var_dump($_POST);
в основном контроллер (индекс. php), непосредственно перед вызовом displayAboutUs()
результаты те же: данные не переданы.
Итак, эта форма пока ничего не отправляет, как при нажатии на кнопке отправки, но это произойдет, если я скопирую и вставлю его в другой отдельный тестовый файл.
Вопрос: почему?