У меня есть форма (очень упрощенная):
<form action='http://example.com/' method='post' name='event_form'>
<input type='text' name='foo' value='3'/>
<input type='submit' name='event_submit' value='Edit'/>
</form>
И у меня есть класс "EventForm" для обработки формы.Основной метод process () выглядит следующим образом:
public function process($submitname=false){
$success=false;
if ($submitname && isset($_POST[$submitname])){ //PROBLEM: isset($_POST[$submitname] is always FALSE for some reason
if($success=$this->ruler->validate()){//check that dependancies are honoured and data types are correct
if($success=$this->map_fields()){//divide input data into Event, Schedule_Element and Temporal_Expression(s)
$success=$this->eventholder->save();
}
}
} else {//get the record from the db based on event_id or schedule_element_id
foreach($this->gets as $var){//list of acceptable $_GET keys
if(isset($_GET[$var])){
if($success= $this->__set($var,$_GET[$var])) break;
}
}
}
$this->action=(empty($this->eventholder->event_id))? ADD : EDIT;
return $success;
}
Когда форма отправляется, это происходит: $form->process('event_submit');
По какой-то причине isset($_POST['event_submit'])
всегда оценивается как FALSE.Кто-нибудь может понять почему?
ETA: после проработки предложений, кажется, что JQuery.validate () неожиданно влияет на отправку формы.Все поля отправлены, кроме кнопки отправки.Похоже, что это ошибка этого JQuery:
$("form[name='event_form']").validate({
submitHandler: function(form) {
form.submit();
}
}};
Есть мысли о том, как убедиться, что значение кнопки отправки отправлено?