Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Javascript

Walidacja formularza

javascript

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
17 odpowiedzi w tym temacie

#1 ZepA***

    Zaawansowany

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 11.02.2012 14:17

SIemka

Mam taki kod:

function validateForm(AForm)
{
    if (!(AForm.soft1.checked ||
		  AForm.soft2.checked ||
		  AForm.soft3.checked ||
		  AForm.soft4.checked ||
		  AForm.soft5.checked)) {
	    alert("Wypełnij przynajmniej jedno pole!");
	    return false;
    } else {
	    return true;
    }
}
Sprawdza on czy jest zaznaczone przynajmniej jedno pole(checkbox) Moje pytanie brzmi jak zrobic takie cos aby sprawdzalo
czy sa zaznaczone 2 opcje? Jezeli sa zaznaczone 2 to ma zwracac true a jesli 1 lub 3 i wiecej to false.

Da sie takie cos w ogóle zrobic? Kod wzialem stąd:http://gajdaw.pl/var...ascript/p2.html (nie bierzcie to za reklame).

dzięki
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 11.02.2012 14:25

robisz zmienna ktora inkrementujesz jezeli ktos zaznaczy pole, i dekrementujesz jezeli odznaczy
  • +
  • -
  • 1

#3 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 11.02.2012 14:48

A wyjasnisz mi na jakims przykladzie oco chodzi?
$zmienna++ i $zmienna--
ale gdzie ja wlozyc?

Użytkownik ZepA*** edytował ten post 11.02.2012 14:48

  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#4 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 11.02.2012 15:15

zmienne w js to var nazwa; o ile sie nie myle
  • +
  • -
  • 0

#5 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 11.02.2012 15:59

Wiem tylko ja ten kod łącze z php. Wiesz jak zrobic to co mowiles w twoim pierwszym poscie?
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#6 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 11.02.2012 16:31

hmm jezeli dobrze zrozumialem, to zainteresuj sie jezykiem AJAX
  • +
  • -
  • 1

#7 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 11.02.2012 19:07

Chetnie bym sie zainteresowal, ale jeszcze ucze sie innych jezykow i mi sie wszystko pomiesza. Jezeli bylby ktos tak mily to proszę o zrobienie mi tylko przykladu(abym wiedzial mniej wiecej jak to ma wygladac), a ja juz reszte sobie zrobie.
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#8 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 11.02.2012 19:09

PO jaka cholere ci tu PHP ?
  • +
  • -
  • 0

#9 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 11.02.2012 21:10

Ta funkcje co tam mam mam zapisana w script.js, a pozniej chce ja wywolac w php:

<script type="text/javascript" src="skrypt.js"></script>

Chce poprostu pomoc w zrobieniu tego kodu tak jak pisalem w 1 poscie
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#10 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2012 11:30

no to chyba w inpucie buttom dajesz onsubmit i wywołujesz tam funkcję łap prosty kod, na min. 2 pola:

function validateForm(AForm)
{
var ile=0;
if (AForm.soft1.checked)
ile++;
if (AForm.soft2.checked)
ile++;
if (AForm.soft3.checked)
ile++;
if (AForm.soft4.checked)
ile++;
if (AForm.soft5.checked)
ile++;

if(ile<2)
{
alert("Wypełnij przynajmniej dwa pola!");
return false;
} else {
return true;
}
}

  • +
  • -
  • 1

#11 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.02.2012 14:35

Juz sobie poradzilem, jednak dzięki za pomoc.

EDIT

Nie wiem czy robic nowy temat. Napisze tutaj, a jakby cos to zrobie nowy temat.

Chcialbym jeszcze odczytac zaznaczone pola za pomoca php. Mam taki kod:

 $odznaki = array(
'odznaka1' => 'Profesjonalista Walki Nozem',
'odznaka2' => 'Profesjonalista Walki Pistoletami',
'odznaka3' => 'Profesjonalista Walki Bronia Szturmowa',
'odznaka4' => 'Profesjonalista Walki Bronia Snajperska',
'odznaka5' => 'Profesjonalista Walki Bronia Wsparcia',
'odznaka6' => 'Profesjonalista Walki Bronia Wybuchowa',
'odznaka7' => 'Profesjonalista Walki Shotgunem',
'odznaka8' => 'Profesjonalista Walki SMG'
);
$ilosc = 8;


$ilosc++;
$zmienna = 0;
for($i = 1; $i < $ilosc; $i++)
{
$odznaczki .= '<label><input type="checkbox" value="'.$i.'" name="odz[]" />'.$odznaki['odznaka'.$i.''].'</label><br>';
}
$ilosc--;
$this->dane_strony['TRESC'] .= '
<form id="odzn" method="post" onsubmit="return sprawdz_formularz();"><div>
<fieldset>
<legend>Wybierz 2 odznaki</legend>
'.$odznaczki.'
<input type="hidden" name="sms" value="'.$sms.'" />
<input type="hidden" name="nick" value="'.$nick.'" />
<input type="hidden" name="mail" value="'.$email.'" />
<input type="submit" name="sprawdz" value="Zamow" />
</fieldset>
</form><div>';


A to jest funkcja sprawdz_formuarz;

function sprawdz_formularz()
{
	var f = document.forms['odzn'];
  var ile = f.odz.length;
  var zaznaczono = 0;

  for (var i=0; i < ile ; i++)
  {
   if(f.odz[i].checked == true)
   {
	zaznaczono++;
   }
  }
  if(zaznaczono < 2)
  {
   alert('proszę zaznaczyc dwie opcje!');
   return false;
  }
  if(zaznaczono > 2)
  {
   alert('Mozna zaznaczyc tylko dwie opcje!');
   return false;
  }
	return true;
}

Jak teraz odczytac value zaznaczonych checkboxow?

Użytkownik ZepA*** edytował ten post 12.02.2012 14:36

  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#12 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2012 17:25

http://www.kurshtml....formularze.html
  • +
  • -
  • 0

#13 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.02.2012 18:04

W inputach dodalem nawiasy klamrowe i zrobilem taki kod:

  $i=1;
foreach($_POST['odz'] as $value)
{
for($x = 1; $x < 8; $x++)
{
$odznak['odznaka'.$i.''] = $odznaki['odznaka'.$value.''];
}
++$i;
}
echo '$odznak[odznaka1], $odznak[odznaka2]';


Wartosci tych zmiennych sie wyswietlaja dobrze, jednak teraz znowy walidacja nie dziala, poniewaz dodalem te nawiasy
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#14 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2012 18:29

yy petla w petli, pomysl i zrob to optymalniej
  • +
  • -
  • 0

#15 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.02.2012 18:51

Wtej chwili nie oto mi chodzi, zresztą działa to dobrze.
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#16 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2012 19:36


for($x = 1; $x < 8; $x++)
{
$odznak['odznaka'.$i.''] = $odznaki['odznaka'.$value.''];
}

ma to jakis sens ?
  • +
  • -
  • 0

#17 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 12.02.2012 20:04

Chyba masz racje, bo po co robic to 8 razy jak tylko 2 wystarczy

for($x = 1; $x < 8; $x++)
{
$odznak['odznaka'.$i.''] = $odznaki['odznaka'.$value.''];
}

Na
for($x = 1; $x < 2; $x++)
{
$odznak['odznaka'.$i.''] = $odznaki['odznaka'.$value.''];
}


Zwróc uwagę, że $odznak, a $odznaki to nie to samo :)

Wie ktos moze jak naprawic to co wczesniej pisalem ?
  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika


#18 ZepA***

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:136
  • Steam:steam
  • Lokalizacja:Walce
Offline

Napisano 16.02.2012 17:15

ODSWIEZAM

EDIT

Mam taki kod:

  for($i = 1; $i < $ilosc; $i++)
{
$odznaczki .= '<label><input type="checkbox" value="'.$i.'" name="odz[]" />'.$odznaki['odznaka'.$i.''].'</label><br>';
}

$this->dane_strony['TRESC'] .= '
<form id="odzn" onsubmit="return sprawdz_formularz();" method="post"><div>
<fieldset>
<legend>Wybierz 2 odznaki</legend>
'.$odznaczki.'
<input type="hidden" name="sms" value="'.$sms.'" />
<input type="hidden" name="nick" value="'.$nick.'" />
<input type="hidden" name="mail" value="'.$email.'" />
<input type="submit" name="sprawdz" value="Zamow" />
</fieldset>
</form><div>';


To jest kod ktory odczytuje zawartosc zmiennej $_POST['odz']

$i = 1;
foreach($_POST['odz'] as $value)
{
$odznak['odznaka'.$i.''] = $odznaki['odznaka'.$value.''];
$i++;
}


Jak mam przerobic ten kod:

function sprawdz_formularz()
{
var f = document.forms['odzn'];
  var ile = f.odz.length;
  var zaznaczono = 0;
  for (var i=0; i < ile ; i++)
  {
  if(f.odz[i].checked == true)
  {
   zaznaczono++;
  }
  }
  if(zaznaczono < 2)
  {
   alert('proszę zaznaczyc dwie opcje!');
   return false;
  }
  if(zaznaczono > 2)
  {
   alert('Mozna zaznaczyc tylko dwie opcje!');
   return false;
  }
return true;
}

aby dzialal poprawnie?

Kiedy zmienie to:

  for($i = 1; $i < $ilosc; $i++)
{
$odznaczki .= '<label><input type="checkbox" value="'.$i.'" name="odz[]" />'.$odznaki['odznaka'.$i.''].'</label><br>';
}


na to:

  for($i = 1; $i < $ilosc; $i++)
{
$odznaczki .= '<label><input type="checkbox" value="'.$i.'" name="odz" />'.$odznaki['odznaka'.$i.''].'</label><br>';
}


To funkcja sprawdz_formularz() dziala poprawnie natomiast nie odczytuje mi zawartosci $_POST['odz']. Jezeli jednak bedzie tak jak na poczatku podawalem to nie dziala funkcja sprawdz_formularz, ale dziala odczytanie zawartosci tej zmiennej.

Wiec jeszcze raz. Jak przerobic funkcje sprawdz_formularz() aby działała z name="odz[]"?

EDIT 2

Dodam jeszcze ze wujek google mi powiedzial, ze powinno zadzialac to z jquery, ale nie znam tego wiec proszę was o pomoc

Użytkownik ZepA*** edytował ten post 16.02.2012 17:26

  • +
  • -
  • 0

Dołączona grafika
------------------------------------
Dołączona grafika






Również z jednym lub większą ilością słów kluczowych: javascript

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych