🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
2 messages
2 total messages Started by Daniel Thu, 30 Aug 2001 08:30
problem z petla w petli - ARRAY
#1727
Author: Daniel
Date: Thu, 30 Aug 2001 08:30
44 lines
2259 bytes
Napisałem funkcje ktora powinna sprawdzac wypelnienie pol pewnej tablic w
porónaniu z tablica wzorcowa.

Dokładnie chcę osiągnąć następujący efekt.


Mam formularz w którym pewme pola są obligatoryjne. Obligatoryjnosc
definiuje np poprzez tablice pol wymaganych
$POLA_WYMAGANE = array(imie,nazwisko,ulica,nip,miasto,kod);  a w funkcji
bedzie to tablic_1.

Wartosci czytane metodą np POST podstawiam pod tablica_2.

Funkcja powinna mi sprawdzic czy nazwa pola formularza wystepuje w tablicy
pol wymaganych i czy warosc tego pola jest pusta i jak spelnia warunek to
dodac tekst do zmiennej blad.

Problem iz ta funkcja spradza tylko tyle:

Sprawdzam pole : imie z polem wzorcowym 0
Blad w polu : imie
Sprawdzam pole : imie z polem wzorcowym 1
Sprawdzam pole : imie z polem wzorcowym 2
Sprawdzam pole : imie z polem wzorcowym 3
Sprawdzam pole : imie z polem wzorcowym 4
Sprawdzam pole : imie z polem wzorcowym 5

***
function sprawdz($tablica_1,$tablica_2)
{
while(list ($pole_t2, $wartosc) = each ($tablica_2)) {
    while(list($pole_t1, $value) = each($tablica_1)) {

          $blad .= "Sprawdzam pole : $pole_t2  z polem wzorcowym
$pole_t1<BR>";   // tea linia tylko do testów
          if ($pole_t2==$pole_t1 && $wartosc=="")
              {
              $blad .= "Blad w polu : $pole_t2<BR>";
              }
    }
}
return $blad;
}
***
Re: problem z petla w petli - ARRAY
#1728
Author: Jarek E.
Date: Thu, 30 Aug 2001 12:03
73 lines
3394 bytes
> Napisałem funkcje ktora powinna sprawdzac wypelnienie pol pewnej tablic w
> porónaniu z tablica wzorcowa.
>
> Dokładnie chcę osiągnąć następujący efekt.
>
>
> Mam formularz w którym pewme pola są obligatoryjne. Obligatoryjnosc
> definiuje np poprzez tablice pol wymaganych
> $POLA_WYMAGANE = array(imie,nazwisko,ulica,nip,miasto,kod);  a w funkcji
> bedzie to tablic_1.
>
> Wartosci czytane metodą np POST podstawiam pod tablica_2.
>
> Funkcja powinna mi sprawdzic czy nazwa pola formularza wystepuje w tablicy
> pol wymaganych i czy warosc tego pola jest pusta i jak spelnia warunek to
> dodac tekst do zmiennej blad.
>
> Problem iz ta funkcja spradza tylko tyle:
>
> Sprawdzam pole : imie z polem wzorcowym 0
> Blad w polu : imie
> Sprawdzam pole : imie z polem wzorcowym 1
> Sprawdzam pole : imie z polem wzorcowym 2
> Sprawdzam pole : imie z polem wzorcowym 3
> Sprawdzam pole : imie z polem wzorcowym 4
> Sprawdzam pole : imie z polem wzorcowym 5
>
> ***
> function sprawdz($tablica_1,$tablica_2)
> {
> while(list ($pole_t2, $wartosc) = each ($tablica_2)) {
>     while(list($pole_t1, $value) = each($tablica_1)) {
>
>           $blad .= "Sprawdzam pole : $pole_t2  z polem wzorcowym
> $pole_t1<BR>";   // tea linia tylko do testów
>           if ($pole_t2==$pole_t1 && $wartosc=="")
>               {
>               $blad .= "Blad w polu : $pole_t2<BR>";
>               }
>     }
> }
> return $blad;
> }
> ***
>
>

Moja propozycja:

function check($treq) {
  for(reset($treq); $key=key($treq); next($treq)) {
    if (isset($GLOBALS[$key])) {
      if (!ereg($treq[$key][0],$GLOBALS[$key]))
$errmsg.='<BR>'.$treq[$key][1];
    } else $errmsg.="<BR>Zmienna \$$key nie jest ustawiona.";  /* ten
komunikat może się przydać podczas tworzenia strony np. litrówka w  nazwie
zmiennej itp. */
  }
  if ($errmsg) $errmsg='<FONT color=red>'.$errmsg.'</FONT>';
  return $errmsg;
}

tablica $treq ma następującą strukturę:
$treq['nazwa_wymaganego_pola'][0]='wyrazenie_regularne';
$treq['nazwa_wymaganego_pola'][1]='Komunikat o bledzie w polu:
nazwa_wymaganego_pola';

np:

print(check(array('ala'=>array(0=>'ma kota',1=>'!!!Blad w polu
ALA'),'ola'=>array(0=>'nie ma',1=>'!!!Blad w polu OLA'))));

Jarek E.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads