Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie formularza
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
voot
Witam,
Próbuję napisać funkcję w js, która wyciągnie wartości styli left, top, width i height z divów (nie wiadomo ile ich będzie i są tworzone za pomocą innego skryptu js) o nazwie klasy rectangle, a następnie prześle do pliku form.php

Mam taki kod:
[JAVASCRIPT] pobierz, plaintext
  1. function nazwa(){
  2.  
  3. var element = document.getElementsByClassName('rectangle');
  4. var status;
  5.  
  6. var Tablica=new Array(element.length);
  7. for (i=0; i<element.length; i++)
  8. {
  9. Tablica[i]=new Array(4);
  10. }
  11.  
  12. for (var i = 0; i < element.length; i++) {
  13. Tablica[i][0] = element[i].style.left;
  14. Tablica[i][1] = element[i].style.top;
  15. Tablica[i][2] = element[i].style.width;
  16. Tablica[i][3] = element[i].style.height;
  17. }
  18.  
  19. for (var j = 0; j <= Tablica.length; j++) {
  20. document.getElementById('kwadraty').innerHTML += '<input name="'+j+'" type="hidden" value="'+Tablica[j][0]+
  21. ','+Tablica[j][1]+','+Tablica[j][2]+','+Tablica[j][3]+'">';
  22. }
  23.  
  24. document.getElementById("kwadraty").submit();
  25. }
[JAVASCRIPT] pobierz, plaintext


Formularz wygląda tak:
  1. <form id="kwadraty" action="form.php" method="post">
  2. <input type="button" onclick="nazwa();" value="alert" />
  3. </form>


W takiej formie skypt nie robi nic, jednak gdy zakomentuję
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById("kwadraty").submit();
[JAVASCRIPT] pobierz, plaintext
utworzy inputy w formularzu, a gdy zakomentuję tworzenie inputów, wtedy wysyła dane formularza i kieruje na stronę form.php.
Moje pytanie brzmi jak zrobić żeby działało? smile.gif
Może ma ktoś jakiś lepszy sposób na przesłanie danych?
trueblue
A gdyby zamiast tworzenia dodatkowych pól w formularzu, utworzyć jedno pole hidden już w html i połączone współrzędne wstawić do value tego pola?
voot
Zadziałało jak zmieniłem input type="button" na input type="submit" i usunąłem z funkcji js document.getElementById("kwadraty").submit();, choć byłem pewny, że wtedy w ogóle nie wykona funkcji js.
Takie rozwiązanie działa, ale nie potrafi utworzyć nowych pól ukrytych przed wysłaniem, dlatego wykorzystałem rozwiązanie które podsunął trueblue - dzięki smile.gif

Może ktoś mi wytłumaczyć, dlaczego ten skrypt js w pierwszym poście nie potrafi utworzyć pól i wysłać formularza za jednym wywołaniem funkcji?
I dlaczego przy zmianie typu pola z button na submit, js nie może utworzyć nowych pól, a zmiana vartości istniejących to już dla niego nie problem?
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.