Почти одинаковые 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/

Потому что он отправляет только одну форму за раз, поэтому он получает только значение из одной формы.

Другие вопросы по тегам