Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dane z formularza bez przycisku submit
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
oximus
witam,
w formularzu mam dwie rozwijane listy domyslnie ustawione na wartosci nic1 i nic2. Jak zrobic by po wyborze jakichkolwiek danych (ale w obu) listach wyslac formularz bez przycisku submit?
kszychu
Dla każdej listy w onChange ustaw funkcję, która będzie sprawdzała, czy zmienione zostały domyślne wartości dla obu list (lista.value != 'nic1' && lista2.value != 'nic2'). Jeśli tak, to wywołaj document.formularz.submit()
nospor
ja to zrobilem trochę inaczej:


przy zalozeniu, ze opcja nic jest pierwsza na liscie
  1. <select name="s1" onchange="if (oki(this,'s2')) submit();">
  2. .....
  3. <select name="s2" onchange="if (oki(this,'s1')) submit();">
  4. .....

i funkcja js:
Kod
function oki(s,sname){
if (s.selectedIndex && document.getElementById(sname).selectedIndex)  return true;
return false;
}
oximus
Może mi to ktoś bardziej łopatologicznie wytłumaczyć? Załóżmy, że mam jedną listę a nie dwie. Gdzie mam wstawić ten javascript? Nad tym php ?
Mam takie cuś poniżej. Kompletnie nie rozumiem tego skryptu. Lista się włącza, ale po wybraniu nic się nie dzieje.
Kod
<script language="javascript"><!--
function oki(s,sname){
if (s.selectedIndex && document.getElementById(sname).selectedIndex)  return true;
return false;
}
--></script>


  1. <?php
  2.  
  3. require_once('mysql_connect.php');
  4. $zapytanie = mysql_query(&#092;"SELECT Id, Name FROM crossing\");
  5.  
  6. echo '<form method=\"POST\" action=\"index.php\">';
  7. echo '<select name=\"lista1\" onchange=\"if (oki(this,\"lista1\")) submit();\">';
  8. echo '<option value =\"nic\">Nazwa skrzyżowania / Crossing</option>';
  9. echo '<option value =\"-\">------------------------------------------------------------';
  10. while ($row = mysql_fetch_array($zapytanie))
  11. {
  12.  echo '<option value=\"'.$row['Id'].'\">'.$row['Name'].'</option>';
  13. }
  14.  
  15. echo '</select></form>';
  16.  
  17. ?>
Zajec
Przedewszystkim:
  1. <script type="text/javascript">


Funkcje JS można umieszczać w head i w body. Twój wybór.

Co do samej funkcji - nie wiem dokładnie jak działa selectedIndex, ale możesz to zrobić poprzez:
  1. <?php
  2. if (document.forms['name_forma_ktorego_nie_nadales'].elements['lista1'].value!='nic')
  3. {
  4. document.forms['name'].submit();
  5. }
  6. ?>



I wywołanie funkcji dajesz w onchange - tym razem bez parametrów.
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.