Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML+JS] Przesłanie formularza bez submita
Forum PHP.pl > Forum > Przedszkole
Coolmax
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>
aleksander
onchange="this.submit()" albo onchange="document.getelementbyid( 'id_formularza').submit()"
Coolmax
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?
TomASS
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.
Coolmax
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
Gość_r3b3l
Pamietaj o tym że 7% osob ma wyłączone skrypty JavaScript w przeglądarce, zamykasz tym uzytkownikom mozliwosci wyslania formularza.
TomASS
Cytat
Pamietaj o tym że 7% osob ma wyłączone skrypty.


A skąd masz takie dane? Chciłbym wiedzieć na przyszłość smile.gif
R3B3L
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.
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.