Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wysyłanie formularza
voot
post 15.03.2014, 22:42:25
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.05.2010

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
trueblue
post 16.03.2014, 19:35:59
Post #2





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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?


Ten post edytował trueblue 16.03.2014, 19:51:28


--------------------
Go to the top of the page
+Quote Post
voot
post 16.03.2014, 23:00:59
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.05.2010

Ostrzeżenie: (0%)
-----


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?

Ten post edytował voot 16.03.2014, 23:19:12
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 17:43