Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery]wysylanie 2 formularzy
Forum PHP.pl > Forum > XML, AJAX
marcio
Witam, tworze sobie plugin pod moj systemdo wysylania zalacznikow.
Problem polega w tym ze mam formularz dodawania artykulu i do tego plugin generuje 2 formularz dla zalacznikow.
Jest tylko jeden z submit z tego pierwszego form-a i mam taki kod:
Kod
function submitAttachmentsForm(idFormSubmitButton, parentIdForm) {
    $('#' + idFormSubmitButton).click(function() {
        $('#' + parentIdForm).submit(function() {
            $('#attachmentsAddForm').submit();
        });
    });
};

Problem polega na tym ze wysyla mi tylko drugi formularz, tzn jesli wyswietle sobie $_POST/$_FILES to $_POST jest pusty...
Probowalem tez za pomoca serialize() w metodzie $.post() ale nie nie dawalo...

Ktos moze mi wytlumaczyc jak to zrobic?
cudny
Pokaż html
marcio
  1. <form method="post" action="/Vf/index.php/Admin,News,addNews" id="newsAddForm" > <h3>Dodaj wpis</h3>
  2. <tr>
  3. <td>Tytul:<Br /><input type="text" name="title" value="Tytul" style="height:30px;width:400px;padding:2px;background-color:#ffffff;border:1px solid #B8860B;"></td>
  4. </tr>
  5. <tr>
  6. <td>Tresc:<Br /><textarea name="content" style="height:300px;width:400px;padding:2px;background-color:#ffffff;border:1px solid #B8860B;">Tresc</textarea></td>
  7. </tr>
  8. <tr>
  9. <td align="center">
  10. <span style="color:#000000;font-size:10px;">
  11. Tagi: , , , , , opis, [code][/code], <!--quoteo--><div class='quotetop'>Cytat</div><div class='quotemain'><!--quotec--><!--QuoteEnd--></div><!--QuoteEEnd-->
  12. <span>
  13. </td>
  14. </tr>
  15. <tr>
  16. <td align="left"><input type="submit" name="submit_add_news" id="addNewsFormSumbitId" style="height:30px;width:100px;padding:2px;background-color:#FFF8DC;border:1px solid #A9A9A9;" ></td>
  17. </tr>
  18. </table>
  19. </form> </div>
  20.  
  21.  
  22. <div class="box">
  23. <h3>Zalaczniki</h3>
  24. <form method="post" action="/Vf/index.php/Admin,News,addNews" id="attachmentsAddForm" enctype="multipart/form-data"><input type="hidden" name="csrf_token" value="2512a696540905a"> <table>
  25. <tr>
  26. <td>1. Zalacznik<Br /><input type="file" name="files[]" style="height:30px;width:300px;padding:2px;background-color:#ffffff;border:1px solid #B8860B;"></td>
  27. </tr>
  28. <tr>
  29. <td>2. Zalacznik<Br /><input type="file" name="files[]" style="height:30px;width:300px;padding:2px;background-color:#ffffff;border:1px solid #B8860B;"></td>
  30. </tr>
  31. <tr>
  32. <td>3. Zalacznik<Br /><input type="file" name="files[]" style="height:30px;width:300px;padding:2px;background-color:#ffffff;border:1px solid #B8860B;"></td>
  33. </tr>
  34. </table>
  35. </form></div> <br class="clearfix" />
  36.  
cudny
Nie do końca rozumiem problem, ale jeśli drugi form jest generowany dynamicznie to w DOM'ie go nie znajdziesz w ten sposób.
Użyj funkcji .on w jQuery, coś takiego:

$(window).on('click','#id',function() {
console.log(this)
});

Poza tym, sprawdź sobie jakie dane wysyłasz od strony przeglądarki, a nie od strony serwera $_POST / $_FILES

marcio
Zaden formularz nie jest generowany dynamicznie.

Lecz naciskajac 1 przycisk musze wyslac obydwa formularze.

jquery post nie potrafi przesylac plikow z tego co wyczytalem.
I wiec musze przeslac go normalnie a ten drugi formularz za pomoca jquery, a jak sie da to obydwa.

Jak ty bys to zrobil?

Znalazlem takie ciekawe plugin-y:
https://github.com/valums/file-uploader
https://github.com/blueimp/jQuery-File-Upload/wiki / http://blueimp.github.com/jQuery-File-Upload/
Moglbym uzyc ktorys z 2 ale nie bardzo wiem jak to obsluzyc potem po stronie php.

Na ajax-ie sie nie znam uzywalem do 2 razy w zyciu haha.gif

cudny
No normalnie, dał bym jeden formularz do wszytkiego, wtedy masz całość jednym formularzem wysłane

Poza tym ajaxowo nie da się wysłać plików. Można to zrobić niewidocznie dla użytkownika używając iframe.
Normalnie dajesz wtedy < iframe name="costam" width="0" height="0"></iframe> a w formularzu dajesz target="costam"
marcio
Dobra nie wazne wydaje mi sie ze problem jest rozwiazany wink.gif
Kod
function submitAttachmentsForm(idFormSubmitButton, parentIdForm) {
    $('#' + idFormSubmitButton).click(function() {
        $('#' + parentIdForm).submit(function(event) {
            event.preventDefault();
            $.post($('#' + parentIdForm).attr("action"), $('#' + parentIdForm).serialize(), function(data) {
                $('#attachmentsAddForm').submit();
            });
        });
    });
}

Taki kod wysyla w tle formularz z artykulem a gdy juz wyslal, zaczyna wysylac plik i w tablicy $_FILES wszystko jest wiec powinno hulac.

Kod
No normalnie, dał bym jeden formularz do wszytkiego, wtedy masz całość jednym formularzem wysłane

Poniewaz nie mam na stale wsadzonej takiej funckjonalnosci jak dolaczanie zalacznikow do komponentu News poprostu chce dac taka mozliwosc poprzez wlaczanie/wylaczanie plugin-u dlatego potrzebuje robic taki myk bo Komponent News i plugin Attachments to sa 2 rozne bundle(powiedzmy)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.