Cakephp 3.6: отправить форму через ajax - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть эта форма:

<?php
                    // Start a modal with a title, default value for 'close' is true
                    echo $this->Modal->create("My Modal Form", ['id' => 'exampleFormModalzz', 'close' => false]) ;

                    echo $this->Form->create($task, ['id' => 'newTaskForm']) ?>
                    <fieldset>
                        <legend><?= __('Add Task') ?></legend>
                        <?php
                             echo $this->Form->control('customer', ['id' => 'Autocomplete', 'empty' => false, 'required' => true]);
                             echo $this->Form->control('name', ['label' => 'Title','autocomplete' => 'off']);
                             echo $this->Form->control('instructions');
                             ?>
                    </fieldset>
                    <?php echo $this->Modal->end([  

                     $this->Form->submit(__('Direct Assign'), ['id' => 'DAbtn', 'name' => 'btn', 'class' => 'button' ]),
                     $this->Form->submit(__('Save as pending'), ['id' => 'SPbtn', 'name' => 'btn', 'class' => 'button' ]) 
                     ]); ?>

И я хочу отправить форму с данными как json.Так что я попробовал это в jquery:

<script type="text/javascript">
    $(document).ready(function(){
        $('#newTaskForm').submit(function(){
            var task = $(this).serialize();
            source: function( request, response ) {
                $.ajax({
                    type: "POST",
                    url: '/app/tasks/createTask',
                    datatype: 'json',
                    data: task,
                    success: function( data )
                    {

                    }
                });
            }

            return false;
        });
    });
</script> 

Но он продолжает отправлять форму через почтовый запрос.Он не передает его через ajax.Как я могу это исправить?

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете заменить кнопку отправки обычной кнопкой и вызвать ajax с помощью onClick.

Пример:

$this->Form->button('Direct Assign', ['id' => 'DAbtn', 'name' => 'btn', 'class' => 'button' ]);

А в Ajax:

$("#DAbtn").click(function () {
        var task = $("#newTaskForm").serialize();
        source: function( request, response ) {
            $.ajax({
                type: "POST",
                url: '/app/tasks/createTask',
                datatype: 'json',
                data: task,
                success: function( data )
                {

                }
            });
        }
...