Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP]Dwa submity w jednym formularzu ładowanie do diva i zapis
Forum PHP.pl > Forum > Przedszkole
kubax33
Męcze się i męcze i wymyślić nic nie mogę

mam skrypt uploadu demo tutaj:
http://malsup.com/jquery/form/progress3.html

i teraz jest problem ponieważ chciałbym ten upload dodać do formularza ze zwykłymi polami input itp a następnie zapisać dane innym submitem

  1. <form action="file-echo2.php" method="post" enctype="multipart/form-data">
  2. <input type="file" name="myfile[]"><br>
  3. <input type="file" name="myfile[]"><br>
  4. <input type="file" name="myfile[]"><br>
  5. <input type="submit" value="Wgraj pliki na serwer">
  6. </form>



i wersja mniej więcej na która chciałbym zmienić
  1. <form action="file-echo2.php" method="post" enctype="multipart/form-data">
  2. <input type="file" name="myfile[]"><br>
  3. <input type="file" name="myfile[]"><br>
  4. <input type="file" name="myfile[]"><br>
  5.  
  6. <input type="submit" value="Upload File to Server">
  7.  
  8. <input type=text name=dane1>
  9. <input type=text name=dane2>
  10. <input type=text name=dane3>
  11.  
  12. <input type="submit" value="Zapisz">
  13.  
  14. </form>


Dodam, że w prawdziwym skrypcie mam jeszcze dynamiczne sprawdzanie czy pola formularza zostały wypełnionione.

Największy problem jest w tym, że dla skryptu ze strony demo którą podałem jak doda się kolejnego SUBMITA cały czas zamiast wyodrębnić go to ładuje wszystko do tego DIVA. Chcę po prostu wgrać plik (wywoła normalnie diva), uzupełnić pola input i zapisać dane po kliknięciu drugiego submita tylko nie wiem jak idzie to ominać, aby o nie ładowało drugiego submita do Uploadu. Próbowałem
  1. <a href="mojpli.php" onclick="document.formularzdodaj.submit();return false;">zapisz</a>
i wtedy dokonuje się upload osobno i zapis do bazy osobno jednak takim submitem nie sprawdzę czy zostały wypełnione pola. Poniżej kod ze strony bez zmian:


  1. <style>
  2. body { padding: 30px }
  3. form { display: block; margin: 20px auto; background: #eee; border-radius: 10px; padding: 15px }
  4.  
  5. .progress { position:relative; width:400px; border: 1px solid #ddd; padding: 1px; border-radius: 3px; }
  6. .bar { background-color: #B4F5B4; width:0%; height:20px; border-radius: 3px; }
  7. .percent { position:absolute; display:inline-block; top:3px; left:48%; }
  8. </style>
  9. </head>
  10. <body>
  11. <h1>File Upload Progress Demo #3</h1>
  12. <code>&lt;input type="file" name="myfile[]"></code><br>
  13. <code>&lt;input type="file" name="myfile[]"></code><br>
  14. <code>&lt;input type="file" name="myfile[]"></code>
  15. <form action="file-echo2.php" method="post" enctype="multipart/form-data">
  16. <input type="file" name="myfile[]"><br>
  17. <input type="file" name="myfile[]"><br>
  18. <input type="file" name="myfile[]"><br>
  19. <input type="submit" value="Upload File to Server">
  20. </form>
  21.  
  22. <div class="progress">
  23. <div class="bar"></div >
  24. <div class="percent">0%</div >
  25. </div>
  26.  
  27. <div id="status"></div>
  28.  
  29. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
  30. <script src="http://malsup.github.com/jquery.form.js"></script>
  31. <script>
  32. (function() {
  33.  
  34. var bar = $('.bar');
  35. var percent = $('.percent');
  36. var status = $('#status');
  37.  
  38. $('form').ajaxForm({
  39. beforeSend: function() {
  40. status.empty();
  41. var percentVal = '0%';
  42. bar.width(percentVal)
  43. percent.html(percentVal);
  44. },
  45. uploadProgress: function(event, position, total, percentComplete) {
  46. var percentVal = percentComplete + '%';
  47. bar.width(percentVal)
  48. percent.html(percentVal);
  49. //console.log(percentVal, position, total);
  50. },
  51. success: function() {
  52. var percentVal = '100%';
  53. bar.width(percentVal)
  54. percent.html(percentVal);
  55. },
  56. complete: function(xhr) {
  57. status.html(xhr.responseText);
  58. }
  59. });
  60.  
  61. })();
  62. </script>


Może jakiś warunek dodac do kodu, aby sprawdzało który submit jest naciśnięty i jeśli jest pierwszy to wywołuje skrypt jeśli jest drugi to nie ładuje go do DIVA uploadu?


blim
A nie możesz mieć jesdnego submita tego od uploadu plikiów i przy zdarzeniu "success" wykonać submita formularza bez kolejnego klikania??
kubax33
Wolałbym nie ale jeśli nie idzie tego jakoś ominąć to mógłbym tak zrobić tylko jak się za to zabrać?
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.