Две мои формы на моей странице welcome.php выглядят так:
<form action="welcomeforms.php" method="post" name="Food_Calories">
<h4>.</h4>//spacer
<input type="text" name="breakfast_calories" value="Calorie Amount" onFocus="this.value=''"><br>
<input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
</form><form action="welcomeforms.php" method="post" name="Foods">
<h4>Breakfast</h4>
<input type="text" name="breakfast" value="Add new breakfast item" onFocus="this.value=''"><br>
<input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;">
</form>
Это код на welcomeforms.php:
if(isset($_POST['breakfast'])){$breakfastitem = $_POST['breakfast'];}
if(isset($_POST['breakfast_calories'])){$breakfastcals = $_POST['breakfast_calories'];}
echo $breakfastitem;
echo $breakfastcals;
Формы правильно отображаются на веб-странице, и когда я ввожу значения «хлеб» в форму для завтрака и «100» в форму для завтрака, это то, что возвращается на веб-странице:
Undefined variable: breakfastitem in C:\wamp\www\welcomeforms.php on line 26
100
Формы в основном идентичны моему глазу, поэтому я не понимаю, почему один из них публикует правильное значение, а другой ничего не публикует. Есть что-то смешное, что я пропустил?
Спасибо за любой совет
Вы используете две отдельные формы, и вы можете отправить только одну за один раз. Объедините их в одну.
Также вместо value="Add new breakfast item" onFocus="this.value=''"
просто используйте placeholder = "Add new breakfast item"
— он будет делать то, что вы намереваетесь получить в современных браузерах — см. поддержку: http://www.html5rocks.com/en/tutorials/forms/html5forms/#toc-other-form-attr
Потому что он отправляет только одну форму за раз, поэтому он получает только значение из одной формы.