Я пытаюсь просто сделать какой-то простой пользовательский ввод, используя jquery-загруженные представления. В этом примере у меня есть простая кнопка на веб-странице, которая отправляет ajax-запрос на загрузку представления, содержащего форму, в div, что прекрасно работает. Когда форма отправляется, данные не декодируются и не добавляются в массив данных запроса.
Вот фрагмент кода с главной страницы с простой ссылкой
<?php
$this->Js->get('#sayHi')->event(
'click',
$this->Js->request(
array('action' => 'sayHi'),
array('update' => '#sayHiOutput')
)
);
?>
<li><?php echo $this->Form->button(__('Say Hi'),array(
'id'=>'sayHi',
'href'=>$this->Html->url(array('action'=>'sayHi')),
));
?></li>
<li><div id=sayHiOutput></div></li>
Это загружает вид в div. Похоже на это:
<?php
$data = $this->Js->get('#WidgetSayByeForm')->serializeForm(array('isForm' => true, 'inline' => true));
$this->Js->get('#WidgetSayByeForm')->event(
'submit',
$this->Js->request(
array('action' => 'sayBye'),
array(
'update' => '#sayHiOutput',
'data' => $data,
'async' => true,
'dataExpression'=>true,
)
)
);
?>
<?php echo $this->Form->create('Widget',array('action'=>'sayBye','default'=>false));?>
<fieldset>
<legend><?php echo __('Add Widget'); ?></legend>
<?php
echo $this->Form->input('name');
?>
</fieldset>
<?php echo $this->Form->end(__('Submit'));?>
<?php echo $this->Js->writeBuffer(); ?>
Этот код запускает ajax-запрос при отправке формы и сериализует данные для запроса. Кажется, все работает правильно, так как я проверил данные запроса xml, используя TamperData. Однако в действии контроллера 'sayBye' массив данных запроса пуст, хотя массив 'query' показывает правильную информацию, вот что я напечатал в файле журнала:
[data] => Array
(
)
[query] => Array
(
[_method] => POST
[data] => Array
(
[Widget] => Array
(
[name] => asdf
)
)
)
Я ожидал, что массив данных будет иметь то же содержимое, что и подмассив, показанный в данных запроса. Так что я предполагаю, что это еще один случай, когда я просто упускаю что-то очевидное, но я не смог понять это. Может быть, скрытый _метод не должен быть POST? Любая помощь будет оценена, спасибо.
Мэтт