2013-03-12 2 views
0

У меня есть две формы, которые отправляются в зависимости от условий.

Я использовал

if(empty($_POST) === false) 

сохранить данные после редактирования. Но впервые я столкнулся с такой ситуацией, которая вызывает и вызывает ошибки.

Что мне нужно для того, чтобы я мог разместить две формы на странице. ???

+2

Какая ситуация и какая ошибка? – zerkms

+1

Какое точное сообщение об ошибке и в какой строке исходного кода это происходит? – Patashu

+0

, пожалуйста, подумайте о том, чтобы принять ответ (нажмите галочку слева), если он действительно ответил на ваш вопрос. – michi

ответ

0

поставил скрытое поле в каждой из ваших форм ...

<input type="hidden" name="do" value="edit" /> 

в другой форме:

<input type="hidden" name="do" value="new" /> 

Затем проверьте $_POST для этих конкретных значений:

if (isset($_POST['do'])) { 

    // a form was posted 

    if ($_POST['do']=='edit') { 

     // do sth with form 'edit' 

    elseif ($_POST['do']=='new') { 

     // do sth with form 'new' 

    } // if $_P 
} // if isset 
+1

Я бы настоятельно рекомендовал использовать 'REQUESTED_METHOD', потому что' form' можно было установить и быть пустым. – Kermit

+0

@AarolamaBluenk изменить: изменить имя поля на 'do' - ваш комментарий по-прежнему применяется? – michi

+1

Не имеет значения, что это называется. – Kermit

0

Я предлагаю вам использовать подход RESTful к этой проблеме. Вы можете проверить, какой метод запроса POST (новый) или PUT (изменить) и справиться с этим.

Например, если у вас есть две формы, одна для редактирования и один для создания элементов, вы установите метод к одному из них с:

<form method="PUT" ...> 
<form method="POST"...> 

и получить метод с помощью:

$_SERVER['REQUESTED_METHOD']; 

поэтому разделив их.