Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML+JS] Przesłanie formularza bez submita, Jak przesłać dane za pomocą <select> ?
Coolmax
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Napisałem sobie skrypt, który zamienia plik ze źródłem stylu i mam taki problem: chcę, aby dane formularza były przesyłane bez submita, czyli jeżeli kliknę na jedną z wybranych opcji, dane były od razu przesyłane. Podpatrzony przeze mnie skrypt działa, ale wymaga dodatkowego skryptu JS, no i nie przekazuje danych formą:

Kod
<script language=JavaScript>
function selecturl(s) {
var gourl = s.options[s.selectedIndex].value;window.top.location.href = gourl;
}
</SCRIPT>


  1. <select name="style" onchange=selecturl(this)>
  2. <option>Wybierz:</option>
  3. <option id="1" value="./about.php?style=1">Czarny</option>
  4. <option id="2" value="./about.php?style=2">Pomaranczowy</option>


Ten post edytował Coolmax 11.03.2006, 19:52:06
Go to the top of the page
+Quote Post
aleksander
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


onchange="this.submit()" albo onchange="document.getelementbyid( 'id_formularza').submit()"
Go to the top of the page
+Quote Post
Coolmax
post
Post #3





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Możliwe, że i działa, (o wiele prościej gdy jest input) ale nie wiem jak wyglądają przesłane dane:

  1. <?php
  2. $s = $_POST['style'];
  3.  
  4. if($s == 1)
  5. {
  6. $st = 1;
  7. }
  8. elseif($s == 2)
  9. {
  10. $st = 2;
  11. }
  12. else
  13. {
  14. $st = 1;
  15. }
  16. ?>


wtedy style to jest name inputa, a jak to jest w przypadku select? w option jest id i value co odpowiada za przesłanie danych?
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


przecierz aleksander Ci jasno napisał.

podpinasz do akcji onchange funkcję this.submit():

Zrób sobie dwa pliki:
  1. <form action="drugi.php" method="post">
  2. <select name="wybor" onchange="this.submit();">
  3. <option value="1">jeden</option>
  4. <option value="2">dwa</option>
  5. </form>


I drugi:
  1. <?php
  2.  
  3. print_r($_POST);
  4.  
  5. ?>

I zobacz co się wyświetliło.

Za przesłanie odpowiedzialny jest parametr name - tak samo w selekcie jak i w inpucie. Także jednemu i drugiemu możesz nadać parametr id.

Ten post edytował TomASS 11.03.2006, 23:27:09
Go to the top of the page
+Quote Post
Coolmax
post
Post #5





Grupa: Zarejestrowani
Postów: 168
Pomógł: 0
Dołączył: 12.11.2005
Skąd: Bulowice nearby Wadowice (E), Oświęcim (W)

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


Zmienną jest tablica, to mi się przyda, ale jak testowałem onchange="this.submit();" to w FF się nic nie działo, a w IE "Obiekt nie obsługuje tej właściwości lub metody" (Wiersz 6
  1. <select name="wybor" onchange="this.submit();">
)


//Edit:

OK Znalazłem błąd, nie wiem czy to jest poprawnie, ale działa zamiast
Kod
this.submit()
należy użyć
Kod
submit(this)
wtedy dopiero u mnie działa

Ten post edytował Coolmax 12.03.2006, 06:45:15
Go to the top of the page
+Quote Post
-Gość_r3b3l-
post
Post #6





Goście







Pamietaj o tym że 7% osob ma wyłączone skrypty JavaScript w przeglądarce, zamykasz tym uzytkownikom mozliwosci wyslania formularza.
Go to the top of the page
+Quote Post
TomASS
post
Post #7





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cytat
Pamietaj o tym że 7% osob ma wyłączone skrypty.


A skąd masz takie dane? Chciłbym wiedzieć na przyszłość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
R3B3L
post
Post #8





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 6.06.2004
Skąd: Zielona Gora

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


Statystyki prowadzone prze rozne organizacje i firmy roznia sie od siebie nie wiecej niz o 3%.
Przyklad:
http://www.w3schools.com/browsers/browsers_stats.asp
http://www.thecounter.com/stats/2004/August/javas.php

JavaScrip powstala po to aby korzystac z tego, ale nalezy pamietac o tym aby tworzyc strony w sposob ktyry nie zablokuje dostepu osobom ktore maja wylaczone JS.

Ten post edytował R3B3L 12.03.2006, 10:15:06
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.09.2025 - 14:43