Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JavaScript]Sprawdzanie czy pola formularza się powtarzają
zeetor
post 2.08.2008, 16:47:56
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 1.07.2008
Skąd: Poznań

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


Witam

Mam 10 pól wyboru rozwijanych...i chciałbym aby nie można było zatwierdzic wyboru jeśli w dwóch (lub więcej polach) wybór się powtórzy...

Na razie kombinuje z czymś takim: przenoszę pola do zmiennych w php... a później za pomocą pętli i if porównuje je ze sobą tzn
Jeżeli Pole1=Pole2 to wróć ...
Jeżeli Pole1=Pole3 to wróć

No ale wydaje mi sie to troche nieefektywne...szczególnie że na razie pól jest 10... ale jak będzie 100??

dz i pozdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
skowron-line
post 2.08.2008, 17:14:01
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. function compare(){
  2. var sel1 = document.getElementById( 'select1' );
  3. sel1Value = sel1.options[ sel1.selectedIndex ].value;
  4.  
  5. var sel2 = document.getElementById( 'select2' );
  6. sel2Value = sel2.options[ sel2.selectedIndex ].value;
  7.  
  8. if(sel1Value == sel2Value )
  9. document.getElementById( 'submit' ).disabled = true;
  10. else
  11. document.getElementById( 'submit' ).disabled = false;
  12. }

  1. <select name="sel1" onchange="compare();">
  2. <option>.....</option>
  3. <select name="sel2" onchange="compare();">
  4. <option>...</option>

No ale zawsze można to zrobić duuuużo lepiej
z wykorzystaniem pętli i tablic.

Ten post edytował skowron-line 2.08.2008, 17:14:30


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
zeetor
post 2.08.2008, 18:22:42
Post #3





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 1.07.2008
Skąd: Poznań

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


Pozmieniałem nazwy zmiennych set1 i set2 na pozycja1 i pozycja2...i na razie dodałem
onchange="compare();" tylko do dwóch pól... i nic...nadal można zatwierdzić dwa takie same wybory...

no chyba żadnego błędu nie popełniłem przy zmianie nazw zmiennych...

CODE
<script>



function compare(){

var pozycja1 = document.getElementById( 'select1' );

pozycja1Value = pozycja1.options[ pozycja1.selectedIndex ].value;



var pozycja2 = document.getElementById( 'select2' );

pozycja2Value = pozycja2.options[ pozycja2.selectedIndex ].value;



if(pozycja1Value == pozycja2Value )

document.getElementById( 'submit' ).disabled = true;

else

document.getElementById( 'submit' ).disabled = false;

}



Go to the top of the page
+Quote Post
skowron-line
post 2.08.2008, 18:31:36
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Jeżeli kwój kod wygląda prawie jak ten:
  1. <script type="text/javascript">
  2.  
  3.  
  4.  
  5. function compare(){
  6.  
  7. var pozycja1 = document.getElementById( 'select1' );
  8.  
  9. pozycja1Value = pozycja1.options[ pozycja1.selectedIndex ].value;
  10.  
  11.  
  12.  
  13. var pozycja2 = document.getElementById( 'select2' );
  14.  
  15. pozycja2Value = pozycja2.options[ pozycja2.selectedIndex ].value;
  16.  
  17.  
  18.  
  19. if(pozycja1Value == pozycja2Value )
  20.  
  21. document.getElementById( 'submit' ).disabled = true;
  22.  
  23. else
  24.  
  25. document.getElementById( 'submit' ).disabled = false;
  26.  
  27. }
  28.  
  29.  
  30.  
  31. <select name="select" id="select1" onchange="compare();">
  32. <option value="1">1</option>
  33. <option value="2">2</option>
  34.  
  35. <select name="select" id="select2" onchange="compare();">
  36. <option value="1">1</option>
  37. <option value="2">2</option>
  38.  
  39. <input type="submit" id="submit" value="click" disabled="true">


to bedzie dobrze


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
zeetor
post 2.08.2008, 18:46:30
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 1
Dołączył: 1.07.2008
Skąd: Poznań

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


dz kilka poprawek i wszystko gra
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: 19.07.2025 - 13:00