Witam
Mam mały problemik z formularzem. Problem ten polega na tym że skrypt do wysyłania zdjeć wysyła mi je nie zwracając uwagi na walidację formularza. W tym przypadku jeśli nie wypełnie pola nazwa akcja powinna się zatrzymać. I tak się niby dzieje ale nie do końca,bo NAZWA nie wysła mi do bazy ale zdjęcia już tak. Czy da się jakoś połączyć te dwa skrypty żeby zdjecia zostały wysłane dopiero po uzupełnieniu wszystkich pól?
Przycisk akcji wysyłania zdjęcia to: onClick="document.getElementById('agileUploaderSWF').submit();"

A oto przykładowy skrypt formularza

  1. <script type="text/javascript">
  2. $().ready(function() {
  3. //WALIDACJA FORMULARZA
  4. $("#commentForm").validate();
  5. $("#signupForm").validate({
  6. rules: {
  7. nazwa: {
  8. required: true,
  9. minlength: 6
  10. },
  11. },
  12. messages: {
  13. nazwa_ogloszenia:{
  14. required: "Proszę podać nazwe",
  15. minlength: "Minimalna długość nazwy to 6 znaków"
  16. },
  17. }
  18. });
  19. });
  20.  
  21. </head>
  22.  
  23. <form action="" method="post" enctype="multipart/form-data" id="signupForm">
  24. <input type="text" id="nazwa" maxlength="50" required autofocus name="nazwa" />
  25.  
  26.  
  27. <div id="fileInputBox"></div> //-pole do wgrywania zdjęć
  28. <script type="text/javascript">
  29. //-SKRYPT DO WYSYŁANIA ZDJĘĆ
  30. $('#fileInputBox').agileUploader({
  31. formId: 'signupForm',
  32. flashVars: {
  33. firebug: false,
  34. form_action: 'up.php',
  35. file_limit: 6,
  36. max_post_size: (1000 * 1024)
  37. }
  38. });
  39. </script>
  40.  
  41. <input type="submit" name="ogloszenie" class="przycisk" value="Wyślij" onClick="document.getElementById('agileUploaderSWF').submit();" />
  42. </form>
  43. </body>
  44. </html>


jeśli natomias usunę linijkę form_action: 'up.php', skrypt już nie wykonuje zadnej akcji dopuki walidacja nie przebiegnie pomyślnie ale również i nie wysyła zdjec.sad.gif . jak wrzucę plik up.php do klasy wysyłania formularza również mi nie wysyła zdjęć

ok. To może inaczej, jak mogę w tym miejscu

Kod
flashVars: {
firebug: false,
form_action: 'up.php',
file_limit: 6,
max_post_size: (1000 * 1024)  
        }


pobrać zmienne i przesłać je do tablicy php, a przy wypełnieniu formularza je wywołać i wykonać dodawanie do dwoch tabel: dane oraz zdjecia.
Skrypt wgrywania plików up.php wyglada tak jak poniżej (tj oryginalny plik który był w skrypcie z tymże tak jak pisałem wysyła zdjęcia jeszcze przed wypełnieniem do końca formularza).
http://old.shift8creative.com/projects/agi...ader/index.html


  1. $target_path = "temp/";
  2. $uploads_dir = $target_path;
  3. if(count($_FILES["Filedata"]["error"]) < 2) {
  4. $tmp_name = $_FILES["Filedata"]["tmp_name"];
  5. $name = $_FILES["Filedata"]["name"];
  6. $ext = substr(strrchr($name, '.'), 1);
  7. switch(strtolower($ext)) {
  8. case 'jpg':
  9. case 'jpeg':
  10. case 'png':
  11. case 'gif':
  12. case 'png':
  13. case 'doc':
  14. case 'txt':
  15. move_uploaded_file($tmp_name, "$uploads_dir/$name");
  16. break;
  17. default:
  18. exit();
  19. break;
  20. }
  21. } else {
  22. foreach ($_FILES["Filedata"]["error"] as $key => $error) {
  23. if ($error == UPLOAD_ERR_OK) {
  24. $tmp_name = $_FILES["Filedata"]["tmp_name"][$key];
  25. $name = $_FILES["Filedata"]["name"][$key];
  26. $ext = substr(strrchr($name, '.'), 1);
  27. switch(strtolower($ext)) {
  28. case 'jpg':
  29. case 'jpeg':
  30. case 'png':
  31. case 'gif':
  32. case 'png':
  33. case 'doc':
  34. case 'txt':
  35. move_uploaded_file($tmp_name, "$uploads_dir/$name");
  36. break;
  37. default:
  38. exit();
  39. break;
  40. }
  41. }
  42. }
  43. }