Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powtarzajace Sie Dane W Formularzu
Forum PHP.pl > Forum > Przedszkole
mass
Mam formularz.

Cytat
for($i=1;$i<=10;$i++) {
<input type=\"text\" name=\"konto[$i]\" size=30>
}


Sklada sie z 10 pol.
W kazdym z tych pol powinny byc wpisane rozne informacje.

W jaki sposob wychwycic powtarzajace sie pola, jesli ktos wpisze np w 3 polach to samo czy w 2.
Nie dopuscic do wyslania formularza pokazac bledy ze te pola zawieraja takie same dane.
W jaki posob to sprawdzic.

pozdr.
kicaj
wartosci inputow przepuszczac przez petle i sprawdzac czy jeden do drugiego nie jest podobny
Uzyj if()" title="Zobacz w manualu PHP" target="_manuali for()" title="Zobacz w manualu PHP" target="_manual
mike
Poczytaj o array_count_values()
U ciebie wszystkie watrości inputów przychodzą w tablicy $konto a właściwie w tablicy $_POST[ 'konto' ]. Więc proponuję taką funkcję:
  1. <?php
  2. function AllDiffrent( $arrTablica )
  3. {
  4. $arrTablica = array_count_values( $arrTablica );
  5. foreach( $arrTablica as $mixValues )
  6. {
  7. if( $mixValues > 1 )
  8. {
  9. return false; //jakaś watrość występuje więcej niż raz
  10. }
  11. }
  12. return true;
  13. }
  14. ?>

Sposób użycia:
  1. <?php
  2. if( AllDiffrent( $_POST[ 'konto' ] ) )
  3. {
  4. echo 'ok';
  5. }
  6. else
  7. {
  8. echo 'Wszystkie wartości muszą być inne !!!';
  9. }
  10. ?>
mass
Ok
ale jak wskazac ze wlasnie ta wartosc sie powtarza.

Inaczej.
Ktos wypelnia formularz.

1 pole = jaja
2 pole = kluska
3 pole = ogorek
4 pole = kluska
5 pole = kartofel
6 pole = jaja
7 pole = jaja
...
itd

I teraz jak mu pokazac nie wiem np. na inny kolor ze te pola maja takie same wartosci aby mogl je poprawic

taka sama wrtosc moze wystepowac tylko raz.

pozdr.
mike
Trzeba było tak od razu biggrin.gif . Proponuję coś takiego"
  1. <?php
  2. function AllDiffrent( $arrTablica )
  3. {
  4. $arrResult = array();
  5. $arrTemp = array_count_values( $arrTablica );
  6. foreach( $arrTemp as $mixKey => $mixValue )
  7. {
  8. if( $mixValue > 1 )
  9. {
  10. foreach( $arrTablica as $mixKey2 => $mixValue2 )
  11. {
  12. if( $mixKey == $mixValue2 )
  13. {
  14. $arrResult[ $mixKey ][] = $mixKey2;
  15. }
  16. }
  17. }
  18. }
  19. return $arrResult;
  20. }
  21. ?>

A działa to w ten sposób:
  1. <?php
  2. $tab[] = &#092;"ok\";
  3. $tab[] = &#092;"ok2\";
  4. $tab[] = &#092;"ok\";
  5. $tab[] = &#092;"ok\";
  6. $tab[] = &#092;"ok2\";
  7. $tab[] = &#092;"ok2\";
  8. $tab[] = &#092;"ok\";
  9. $tab[] = &#092;"ok3\";
  10.  
  11. echo '<pre>';
  12. print_r( $tab );
  13. echo '</pre>';
  14.  
  15. $tab = AllDiffrent( $tab );
  16.  
  17. echo '<pre>';
  18. print_r( $tab );
  19. echo '</pre>';
  20. ?>

Wynik przykładu:
Cytat
Array
(
    [0] => ok
    [1] => ok2
    [2] => ok
    [3] => ok
    [4] => ok2
    [5] => ok2
    [6] => ok
    [7] => ok3
)

Array
(
    [ok] => Array
        (
            [0] => 0
            [1] => 2
            [2] => 3
            [3] => 6
        )

    [ok2] => Array
        (
            [0] => 1
            [1] => 4
            [2] => 5
        )

)

Czyli watrość "ok" powtarz się na pozycji 0,2,3,6 a wartość "ok2" na pozycjach 1,4,5. Wartości "ok3" nie ma nigdzie jako klucza więc występuje tylko raz. Mam nadzieję że o to chodziło.
Pozdrawiam. Mike.
mass
Wielkie dzieki Mike exclamation.gif!!! biggrin.gif

Szuakm knefla "Pomogl mi" lecz nie widze sad.gif
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.