Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
funkcije i php...ljen sam :)

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side
View previous topic :: View next topic  
Author Message
maxy



Joined: 07 Sep 2003
Posts: 894
Location: Zagreb

PostPosted: 14.11.2003 22:09    Post subject: funkcije i php...ljen sam :) Add user to your forum ignore list Reply with quote

ocu predat pointer na polje funkciji i odvrtit loop. da dam primjer:

$errors[$i] sadrzava sve errore prilikom procesiranja formulara
napravim funkciju da prikaze html...aj dacu primjer:)

$errors[$i] sadrzi 3 vrijednosti recimo (dakle ide do $errors[2])
funkcija je tipa:
Code:
 function html($i, [tu bi trebo ic array, ne znam ovaj dio!]) {
while($i) {
echo "". $errors[$i] ."";
$i--;
}

e di je problem - ja predam argumente ovak:
Code:
echo html($i, &$errors[$i])

uglavnom, tak se predaje u C-u, al u phpu nejde
probo sam stavit drugi argument kao pointer prilikom pisanja funkcije, al ne ide ni onda Sad
uglavnom, problem sam rjesio na drugi nacin, al posto ocu znat KAKO rjesit to na ovaj nacin, trazim pomoc ovdje Smile
jesam li spomeno da sam dobio napad akutne ljenosti pa da mi se neda ic na php.net? Smile
Back to top
View user's profile Send private message
buzztard



Joined: 08 Sep 2003
Posts: 84

PostPosted: 15.11.2003 03:06    Post subject: Add user to your forum ignore list Reply with quote

zavisi šta želiš. u tvom primjeru daješ refencu na polje u arrayu kad pozivaš funkciju, a htio bi poslati array (pretpostavljam)...

koliko sam razumuio želiš izlistati sva polja od zadanog do prvog ($errors[0]). U tom slučaju mu pošalji array $errors, a ne referencu na polje &$errors[$i] kad pozivaš funkciju. i zaboravio si izlistati nulto polje.

u deklaraciji staviš da je array referenca, da ga ne kopira unutar funkcije. znači
Code:

function html($i, &$errors) {
    while($i >= 0) {
          echo  $errors[$i];
          $i--;
     }
}


a pozivaš sa
Code:
 

$errors = Array( "prvi error", "drugi error", "treci error");
$i  = 2;

html($i, $errors); // ne treba ti echo jer ga već imaš u funkciji


_________________
___(-o_o) .o( The tears of stangers are only water. )________
Back to top
View user's profile Send private message Visit poster's website
maxy



Joined: 07 Sep 2003
Posts: 894
Location: Zagreb

PostPosted: 15.11.2003 09:03    Post subject: Add user to your forum ignore list Reply with quote

pazi o cem se radi - imam formular sa 40ak text boxova. uglavnom, neki su required, a neki nisu a posto sam ja bio uberljen, ljepo sam dao boxovima ime po broju (0-39) i ak su required i prazni, onda se desi nesto tipa ovo:

Code:

$i = 0; // na samom pocetku koda
.
.
.
// tu sam odvrtio jednu for petlju, pobro $_POST elemente, sad idem pogledat dal su required
.
.
// ak je taj dio formulara bio prazan, dogodi se sljedece
$errors[$i] = "Odgovarajuca error poruka";
$i++;

uglavnom, tak se napravi $errors[$i];
prilikom deklaracije funkcije, postavljao sam pointer na polje, ali fk0rz, php mi je javljao gresku. nakon tog sam htio deklarirat $errors[] kao GLOBAL varijablu, al nie islo (jel mozda znas kak se to radi? - jel to GLOBAL $errors pa ga prilikom koristenja pretvorim u polje?). na kraju sam rjesio problem da u kodu prije pozivanja funkcije pretvorim polje u najobicniji string i prenesem njega u funkciju (posto mi funkcija prikazuje HTML, trebam tamo error porukice koje se dogode), al htio sam znat kak se salje pointer na polje u php-u (dovraga oni i C). uglavnom kolega, zahvaljujem ti na pomoci.

btw.
Code:
while($i >= 0) {
          echo  $errors[$i];
          $i--;
     }


radi isto sto i
Code:
while($i ) {
          echo  $errors[$i];
          $i--;
     }

jer ce se oba izvrsavat dok $i ne postane 0; Wink
Back to top
View user's profile Send private message
buzztard



Joined: 08 Sep 2003
Posts: 84

PostPosted: 15.11.2003 12:48    Post subject: Add user to your forum ignore list Reply with quote

$errors[] nije array nego na taj način dodaješ polje u array. $errors je array.

znači da bi dobio ono što tražiš.

Code:


var $errors = Array();


// ovdje procesiraš $_POST
// i dodaješ errore u array redom:
if ($neka_greska) $errors[] = "Neka greška u arrayu";



// ovdje prikazuješ greške:

show_errors($errors);




funnkcija ti je

Code:



function show_errors(&$errors){
   for($i = 0; $i < count($errors); $i++)
     echo $errors[$i];
}



ili obrnuto ako hoćeš... sa while-om....
Code:

function show_errors(&$errors){
   $i = count($errors) - 1:
   while($i >= 0){
     echo $errors[$i];
     $i --;
   }
}



ili još jednostavnije:
Code:

function show_errors(&$errors){
   $i = count($errors):
   while($i){
     echo $errors[$i - 1];
     $i --;
   }
}


mada možeš i sa array_pop() i sličnima postići isti efekt.... ako ti više ne treba taj array....





treće, nisi u pravu. probaj pa ćeš vidjeti da ako je $i=0 petlja se ne izvršava. a treba ti i nulto polje.

_________________
___(-o_o) .o( The tears of stangers are only water. )________
Back to top
View user's profile Send private message Visit poster's website
maxy



Joined: 07 Sep 2003
Posts: 894
Location: Zagreb

PostPosted: 15.11.2003 13:05    Post subject: Add user to your forum ignore list Reply with quote

e puno hvala za objasnjenje ovih array forica. dosad mi nisu trebale i radio sam na vulgaris ala C tipa shemama za rad sa poljima.
sto se tice whilea, to sam isto sjebo jedno polje, tak da jos jednom thx na ispravku moje blesave greske Shocked
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group