61. kasphaus - 21 Апреля, 2012 - 21:37:01 - перейти к сообщению
ну это я примерно понимаю, но как разграничить чтобы асинхронную загрузку файла обрабатывал uploadFile.php, а сама форма отправлялась на add.php?
62. DlTA - 21 Апреля, 2012 - 21:42:56 - перейти к сообщению
если домен подразумевается один и тот же, то распарсить фрейм для получения ответа от сервера, и вставить в соответствующиее скрытое поле формы
63. tuareg - 21 Апреля, 2012 - 21:53:40 - перейти к сообщению
Так минуточку. У нас какое-то недопонимание ...
Итак.
шаг 1. Пользователь выбрал файл (нажал на кнопку открыть) файл пошел загружаться и загрузился.(отработал uploadFile.php)
шаг 2. Пользователь нажал на <input type="submit" /> Форма ушла к файлу add.php
Если так то делайте как я писал выше.
А если не так, то по событию submit, сначала отправляйте файл на сохранение, а после получения отправляйте форму на сохранение.(результат первого запроса вставляйте в скрытое поле) Пример $.Deferred() в jQuery. Реализацию на чистом js(др фреймворке посмотрите сами)
Итак.
шаг 1. Пользователь выбрал файл (нажал на кнопку открыть) файл пошел загружаться и загрузился.(отработал uploadFile.php)
шаг 2. Пользователь нажал на <input type="submit" /> Форма ушла к файлу add.php
Если так то делайте как я писал выше.
А если не так, то по событию submit, сначала отправляйте файл на сохранение, а после получения отправляйте форму на сохранение.(результат первого запроса вставляйте в скрытое поле) Пример $.Deferred() в jQuery. Реализацию на чистом js(др фреймворке посмотрите сами)
64. kasphaus - 21 Апреля, 2012 - 22:14:01 - перейти к сообщению
tuareg пишет:
Так минуточку. У нас какое-то недопонимание ...
Итак.
шаг 1. Пользователь выбрал файл (нажал на кнопку открыть) файл пошел загружаться и загрузился.(отработал uploadFile.php)
шаг 2. Пользователь нажал на <input type="submit" /> Форма ушла к файлу add.php
Если так то делайте как я писал выше.
Итак.
шаг 1. Пользователь выбрал файл (нажал на кнопку открыть) файл пошел загружаться и загрузился.(отработал uploadFile.php)
шаг 2. Пользователь нажал на <input type="submit" /> Форма ушла к файлу add.php
Если так то делайте как я писал выше.
Все верно) Но как файл отправить на uploadFile.php, если action у формы = add.php ? Менять action формы в зависимости от действий пользователя? Типа если сработал .change у file input, то ставим action = uploadFile.php и сабмитим форму? А если произошел клик по <input type="submit" /> то отправляем форму на add.php?
65. tuareg - 21 Апреля, 2012 - 22:18:37 - перейти к сообщению
Да конечно. По onchange, меняйте атрибут, а после получения ответа, снова его выставляйте.
66. DlTA - 21 Апреля, 2012 - 23:29:04 - перейти к сообщению
а может забить на построение велосипеда и заюзать jQuery[dot]post
67. tuareg - 21 Апреля, 2012 - 23:31:04 - перейти к сообщению
DlTA пишет:
$.post по-моему, не может отправить файл.
DlTA
68. DlTA - 21 Апреля, 2012 - 23:31:41 - перейти к сообщению
tuareg пишет:
та вот тоже чет не найду
$.post по-моему, не может отправить файл
69. tuareg - 21 Апреля, 2012 - 23:35:05 - перейти к сообщению
Нет, не получится. Смотри есть плагин jsForm. Так вот если смотреть его исходники, то там тоже iframe. Да и потом, тут задача другая. По onchange файл загрузить, а по submit отправить форму. Если приделывать плагин или т.п то получится, что по onchange будут отправляться и все другие input, а это я так понимаю не надо
70. DlTA - 21 Апреля, 2012 - 23:37:28 - перейти к сообщению
а кто сказал что это должна быть 1 форма?! визуально может и одна, но на самом деле это разные формы, одна во фрейме для згрузки файла, вторая для сообщения.
(Добавление)
http://saintist[dot]ru/2009/08/14/jq[dot][dot][dot]jax-upload-file/
(Добавление)
http://saintist[dot]ru/2009/08/14/jq[dot][dot][dot]jax-upload-file/
71. tuareg - 21 Апреля, 2012 - 23:44:03 - перейти к сообщению
Это-то ясно все. Тогда получится как-то так
CODE (html):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <iframe name="ifr"></iframe>
- <form action="upload.php" target ="ifr" method="post">
- <input type="file"/>
- </form>
- <form action="add.php" method="post">
- <input type="text" />
- <input type="hidden" />
- <textarea></textarea>
- <input type="submit" />
- </form>
И css-ом делать, чтобы визуально поле файл было во второй форме. Сейчас еще посмотрю, может можно чтобы в одной форме была вложена другая форма
Добавление
Нет вложенные формы никак, следовательно или менять атрибут или 2 формы+позиционирование