Я не хочу использовать FormHelper из CakePHP, потому что я хочу использовать Ajax в своем приложении. Как передать данные из формы в контроллер? Я использую $.post
из jQuery, но всегда получаю сообщение об ошибке. Спасибо!HTML Form в CakePHP
ответ
Вы можете использовать Ajax с CakePHP Form Helper.
В файле вид .ctp говоря:
echo $this->Form->create('Model', array('id'=>'YourFormId', array('default'=>false)));
echo $this->Form->input('field');
echo $this->Form->submit('Save');
echo $this->Form-->end
Обратите внимание на вашем форма-> создать свое пропускание по умолчанию => ложного, который говорит форму, чтобы не делать нормальный «Отправить».
В нижней части файла вида .ctp говоря:
$data = $this->Js->get('#YourFormId')->serializeForm(array('isForm' => true, 'inline' => true));
$this->Js->get('#YourFormId')->event(
'submit',
$this->Js->request(
array('action' => 'yourAction', 'controller' => 'yourController'),
array(
'update' => '#flash',
'data' => $data,
'async' => true,
'dataExpression'=>true,
'method' => 'POST'
)
)
);
echo $this->Js->writeBuffer();
выше, является CakePHP JS помощник, чтобы помочь вам написать Ajax и Javascript, какой PHP. Он в основном захватывает данные формы, которые отправляются и сериализует их, и передает их/yourcontroller/youraction через ajax. Обновление => # flash сообщает Cake обновить div #flash после завершения действия.
Помните, в вашем контроллере, чтобы общественность
public $helpers = array('Js');
public $components = array('RequestHandler');
Это было потрясающе, спасибо @Brett Stewart – justinhartman
- JQuery -
$.post('<?=$this->Html->url(array('controller'=>'xxx','action'=>'yyy'))?>', {a:1,b:2});
- CakePHP -
function yyy() {
$a = $this->request->data['a'];
$b = $this->request->data['b'];
}
- 1. CakePHP. Зачем использовать Html form helper вообще
- 2. CakePHP/jQuery Form Parsing
- 3. CakePHP Form Helper minYear
- 4. form submit in cakephp
- 5. Cakephp form helper Model
- 6. cakePHP Assisted Form Input
- 7. Slow CakePHP form input
- 8. cakephp form action link
- 9. cakePHP: form success message
- 10. Form element array cakephp
- 11. CakePHP form $ options ['options']
- 12. cakephp 2 ajax form
- 13. cakePHP form custom validation
- 14. CakePHP Multistep Form Validation
- 15. Form Validation в CakePHP 2
- 16. unset hidden form cakephp
- 17. cakephp 2.3 ajax form submission
- 18. CakePHP form submit не работает
- 19. Что означает «public $ helpers = array ('Html', 'Form'); in CakePHP
- 20. Cakephp 3 form input div в div
- 21. Cakephp sql decimal input form
- 22. ajax submit form using cakephp
- 23. CakePHP: $ form-> input ('checkbox');
- 24. cakephp 3 form validation notEmpty
- 25. Cakephp Form Helper Параметры нуля
- 26. Html-хелперов postLink в CakePHP
- 27. cakephp form input add attribute
- 28. CakePHP - Ajax form - submit on blur
- 29. Html теги не работает в CakePHP почты
- 30. C# Windows Application Form to Html Form
Какую ошибку вы получаете? –
в вашем контроллере вы сможете использовать $ _POST, убедитесь, что ваш запрос ajax/post указывает поля, которые вы хотите использовать. одна вещь, о которой нужно помнить, заключается в том, что если в вашей созданной вручную форме есть ошибки разметки или что-то необычно необычное, Cake часто уничтожает все почтовые данные, и вам останется странная и запутанная проблема :) если это так, ознакомьтесь с руководством о том, как обращаться с «черным ходом»: http://book.cakephp.org/2.0/ru/core-libraries/components/security-component.html#handling-blackhole-callbacks –
'Я не хочу использовать FormHelper из CakePHP, потому что я хочу использовать Ajax в своем приложении - что делает FormHelper для вашего вызова ajax? Я использую FormHelper и Ajax все время без каких-либо проблем. – Konsole