Почти одинаковые HTML-формы, одно сообщение правильное значение, другое нет
Две мои формы на моей странице 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
Формы в основном идентичны моему глазу, поэтому я не понимаю, почему один из них публикует правильное значение, а другой ничего не публикует. Есть что-то смешное, что я пропустил?
Спасибо за любой совет
2 ответа
Вы используете две отдельные формы, и вы можете отправить только одну за один раз. Объедините их в одну.
Также вместо value="Add new breakfast item" onFocus="this.value=''"
просто используйте placeholder = "Add new breakfast item"
- он сделает то, что вы намереваетесь получить в современных браузерах - обратитесь в службу поддержки: http://www.html5rocks.com/en/tutorials/forms/html5forms/
Потому что он отправляет только одну форму за раз, поэтому он получает только значение из одной формы.