Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Использование нескольких form и ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Использование нескольких form и ajax
CARtMEN
Отправлено: 28 Сентября, 2012 - 23:18:41
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Ребята подскажите как реализовать следующее!
Имеются две формы:
Одна для заполнения данными, а вторая для отправки файла на другой скрипт через аякс. И нужно вставить вторую форму в первую. Но проблема начинаеться с передачей картинки. Прочитал в нете как отправлять с формы в разные скрипты, но не могу никак отправить картинку. Есть какие-нибудь у кого-нибудь варианты по реализации клиентской части? Или здесь лучше будет поменять серверную часть. Вот код:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <form id="content" action="content_change.php" method="post">
  4.                 <p>Номер по порядку: <input type="text" name="number" size="50" value="<?=$def_number?>">
  5.                 <p>Название статьи:  <input type="text" name="name"   size="52" value="<?=$def_name?>">
  6.  
  7.                         <?php
  8.  
  9.                                 if ($_SERVER["REQUEST_METHOD"] == "GET" and $oper == "change") {
  10.                                         ?>
  11.                                                 <input type="hidden" name="oper" value="<?=$oper?>">
  12.                                                 <input type="hidden" name="id" value="<?=$id?>">
  13.                                         <?
  14.                                 }
  15.                                 else if ($_SERVER["REQUEST_METHOD"] == "GET" and $oper == "add") {
  16.                                         ?>
  17.                                                 <input type="hidden" name="oper" value="<?=$oper?>">
  18.                                         <?
  19.                                 };
  20.                                
  21.                         ?>
  22.  
  23.                 <!-- Загрузка картинок -->
  24. <form action="upload.php" target="rFrame" method="POST"  
  25.            enctype="multipart/form-data">
  26.                 <iframe id="rFrame" name="rFrame" style="display: none">  
  27.                 </iframe>
  28.                 <br> Добавить картинку в текст <br>
  29.                 <input type="file" name="loadfile">  
  30.                 <input type='button' onclick="postFileToIframe(loadfile.files[0], 'upload.php', 'rFrame')" value='Загрузить'>  
  31.                 </form>
  32.                 <!-- Загрузка картинок -->
  33. </form>
  34.  
  35.                 <p>Содержание статьи: <br><textarea id="myArea" name="value"
  36.                                     cols="55" rows="5" ><?=$def_value?></textarea>
  37.                 <p><input type="submit" value="Сохранить">
  38.         </form>
  39.  
  40.  
 
 Top
ZeiZ
Отправлено: 29 Сентября, 2012 - 00:06:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009  
Откуда: Москва


Помог: 0 раз(а)




А где реализация JS и серверной части?
Без неё никто не сможет Вам помочь ((
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Сентября, 2012 - 10:28:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CARtMEN пишет:
Есть какие-нибудь у кого-нибудь варианты по реализации клиентской части?

Загружать файлы через скрытый iframe.

Пример:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. $(function(){
  4.        
  5.         var my_file = $('#my-file'),
  6.             form = my_file.parent('form'),
  7.             my_iframe = $('#my-iframe'),
  8.             data = {};
  9.        
  10.         // jquery version 1.7.2
  11.         form.on('change', my_file, function(e) {
  12.  
  13.         // OR my_file.live('change', function(e) {
  14.                
  15.                 form.submit(function(e) {
  16.                
  17.                         my_iframe.load(function(e) {
  18.                        
  19.                                 data = this.contentWindow.data;
  20.                                
  21.                                 $('#deBag').html(
  22.                                
  23.                                         '<p>'+
  24.                                         '<b>name</b>: '      +data['name']+'<br>'+
  25.                                         '<b>type</b>: '      +data['type']+'<br>'+
  26.                                         '<b>tmp_name</b>: '  +data['tmp_name']+'<br>'+
  27.                                         '<b>error</b>: '     +data['error']+'<br>'+
  28.                                         '<b>size</b>: '      +data['size']+
  29.                                         '</p>'
  30.                                        
  31.                                 ).css('font-size',21)
  32.                                  .find('b').css('color','#00C');
  33.                        
  34.                         });
  35.                
  36.                 }).submit();
  37.        
  38.         });
  39.  
  40. });
  41.  

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div class="iframe-conteiner">
  3.   <iframe name="my_iframe" id="my-iframe"></iframe>
  4. </div>
  5. <form action="send.php" method="post" enctype="multipart/form-data"  target="my_iframe">
  6.   <input type="file" id="my-file" name="my_file">
  7. </form>
  8. <div id="deBag"></div>
  9.  

CODE (css):
скопировать код в буфер обмена
  1.  
  2. .iframe-conteiner {
  3.         position:absolute;
  4.         top:-10px;
  5.         left:-10px;
  6.         overflow:hidden;
  7.         width:0;
  8.         height:0;
  9.         }
  10.  


Файл send.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3.   var data = <?=json_encode($_FILES['my_file'])?>;
  4. </script>
  5.  


(Добавление)
CARtMEN пишет:
И нужно вставить вторую форму в первую.

Для чего ?

(Отредактировано автором: 29 Сентября, 2012 - 12:27:16)

 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Сентября, 2012 - 12:23:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Архив с примером -->>
Скачать файл: load_file_iframe.zip
Скачан раз: 66
 
 Top
CARtMEN
Отправлено: 29 Сентября, 2012 - 14:40:50
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Спасибо за пример и помощь!
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Сентября, 2012 - 14:41:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Не за что.
Разобрались ?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB