Использование Ajax с cakephp для загрузки файлов - PullRequest
1 голос
/ 29 июня 2010

Я создал сайт CakePHP, который позволяет пользователям загружать файлы, все работает нормально, но я хотел бы показать изображение с надписью «загрузка файла» или что-то еще во время загрузки. Теперь я знаю, что должен использовать помощники формы $ ajax->, но я не могу заставить это работать. Кто-нибудь может указать мне правильное направление, пожалуйста

<?php echo $ajax->form(array('type' => 'post',
    'options' => array(
        'model'=>'Upload',
        'update'=>'post2',
        'action' => 'add',
        'confirm' => 'Are you sure?',
        'indicator' => 'loading',
        'before' => '$("#post2").html("Wait a moment")'

    )
)); 
 ?>

    <fieldset>
        <legend><?php __('Add Upload');?></legend>

    <?php echo $form->input('title'); ?>

    <div id="formUpdate">

</div>

    <?php echo $form->input('Uploaded.uploaded_file', array('type' => 'file', 'label' => 'Upload file')); ?>


    </fieldset>
<?php echo $form->end('Submit');?>
</div>

    <div id="post2"></div>

1 Ответ

0 голосов
/ 29 июня 2010

Хорошо, если вы не хотите использовать решение для загрузки Ajax, тогда это может быть достигнуто с помощью простого JavaScript.Я бы объяснил, как это сделать с помощью jQuery, но вы также можете добиться этого с любой библиотекой или чистым javascript.

Итак, создайте скрытый div, содержащий ваше сообщение ожидания, например:

<div id="wait">File is uploading please wait</div>

к кнопке отправки вашей формы прикрепите следующую функцию:

function pleaseWait(){
  $('#your_form_id').hide();
  $('#wait').show();
}

В основном это скрыло бы форму и отобразило контейнер ожидания.Как только файл будет загружен, страница будет перенаправлена, поэтому вам не нужно беспокоиться о том, как снова отобразить форму.

Я сделал это в своем проекте, и он работал довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...