AJAX Запрос и возврат - PullRequest
       13

AJAX Запрос и возврат

0 голосов
/ 04 августа 2011

Я создаю форму "новый блог", и у меня есть несколько полей для загрузки фотографий в форме. Можно ли как-то отправить запрос на публикацию с помощью AJAX, загрузить фотографию и вернуть URL-адрес фотографии, отображаемый в форме «Новый блог»? Моя задняя часть написана на ruby ​​на рельсах.

Надеюсь, это имеет смысл! Любая помощь с благодарностью!

Спасибо, Alex

1 Ответ

3 голосов
/ 04 августа 2011

Да, но это немного сложно. Проблема в том, что вы не можете отправлять загруженные файлы через AJAX, НО существует простой обходной путь, который использует большинство людей.

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

Пример:

<iframe id="upload"></iframe>
<%= form_for @photo, :html => { :multipart => true, :id => 'photo_upload_form', :target => 'upload' }, :url => photos_path do |f| %>
  <div class="field">
    <%= f.label :image, 'Upload Photo' %>
    <%= f.file_field :image %>
  </div>    
<% end %>

... и, конечно, используйте CSS, чтобы скрыть iFrame. Мне кажется, у меня когда-то была проблема со скрытием iFrame с display: none, поэтому я бы порекомендовал переместить его за пределы экрана, используя что-то вроде:

#upload { position: absolute; left: -10px; top: -10px; width: 1px; height: 1px; }

Наконец, вы можете использовать JavaScript в представлении, которое отображается внутри скрытого iFrame с помощью window.parent, так что вы можете отобразить загруженное изображение внутри формы загрузки.

...