Article View: pl.comp.lang.php
Article #1728Re: problem z petla w petli - ARRAY
From: Jarek E.
Date: Thu, 30 Aug 2001 12:03
Date: Thu, 30 Aug 2001 12:03
73 lines
3394 bytes
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.
Technical Details
Message-ID:
<9mlaop$e0t$1@news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mailReferences:
<9mktlf$cio$1@news2.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mail From: "Jarek E." <jareken@kki.net.pl> Newsgroups: pl.comp.lang.php Subject: Re: problem z petla w petli - ARRAY Date: Thu, 30 Aug 2001 14:03:40 +0200 Organization: tp.internet - http://www.tpi.pl Lines: 75 Message-ID: <9mlaop$e0t$1@news.tpi.pl> References: <9mktlf$cio$1@news2.tpi.pl> NNTP-Posting-Host: pb79.piotrkow.cvx.ppp.tpnet.pl X-Trace: news.tpi.pl 999173721 14365 213.77.225.79 (30 Aug 2001 12:15:21 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: 30 Aug 2001 12:15:21 GMT X-Notice-1: This post has been postprocessed on the news.tpi.pl server. X-Notice-2: Subject line has been filtered and leading Odp: string removed. X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 X-Newsreader: Microsoft Outlook Express 5.00.2615.200 X-Subject: Odp: problem z petla w petli - ARRAY X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit