Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56
Príspevok NapísalOffline : 23.05.2014 18:22

Ok prave som vymazal celu otazku na 20 riadkov a pisem ju na 4 riadky..

potrebujem napisat funkciu ktora mi z pola $_POST vrati hodnotu podla indexu .. a aby fungovala aj na viacurovnove pole napriklad:

post('billing,name');

function post($index){
.... a funkcia vrati index z pola $_POST -> $_POST['billing']['name'] ak taky index neexistuje vrati false
}

ako to urobit aby funkcia zbehla co najrychlejsie ? cez foreach mi to je jasne ... da sa to aj inak ?

ps. parameter pre funkciu post musi byt iba jeden


Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 02.06.08
Prihlásený: 19.07.16
Príspevky: 3325
Témy: 147
Bydlisko: Žilina / Os...
Príspevok NapísalOffline : 25.05.2014 0:28

http://stackoverflow.com/questions/2433 ... t-with-php

Parameter do funkcie si pošli aj array ak to budeš potrebovať
Kód:
array(1 => 'index1', 2 => 'index2');

array('1', '2') nieje multi-dim. array, správne to bude array(array('data'),'2') a podobne :) Ak nepotrebuješ iterovať cez pole môžeš využiť na zistenie nastaveného prvku
Kód:
isset(data['index']) @return true / false


Kód:
function PostData($index) {
          if(isset($_POST[$index] == true)
                  return $_POST[$index];
          return false;
}







_________________
PC - ASUS M2N-MX Se+ | AMD X2 4200+ | 2GB RAM | Nvidia 8600GT | WD 320GB | 350W |NTB - ASUS K50AB SX-010 | | ASUS X550L | SteelSeries Mousepad | A4tech XL-750BF | HTC Explorer |
CCNA (640-802) |
Offline

Správca fóra
Správca fóra
post funkcia a post pole

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 25.05.2014 0:47

Okrem cyklu mozes este pouzit eval (radsej nie), alebo vyuzijes napr. funkciu array_reduce







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56
Príspevok Napísal autor témyOffline : 25.05.2014 18:30

majky358 píše:
http://stackoverflow.com/questions/2433727/submitting-a-multidimensional-array-via-post-with-php

Parameter do funkcie si pošli aj array ak to budeš potrebovať
Kód:
array(1 => 'index1', 2 => 'index2');

array('1', '2') nieje multi-dim. array, správne to bude array(array('data'),'2') a podobne :) Ak nepotrebuješ iterovať cez pole môžeš využiť na zistenie nastaveného prvku
Kód:
isset(data['index']) @return true / false


Kód:
function PostData($index) {
          if(isset($_POST[$index] == true)
                  return $_POST[$index];
          return false;
}


to mi je jasne ... ja potrebujem tu funkciu pre mutli pole ...ak mam vo formulari napriklad input: name="billing['index1']['index2']['index3']..."
a chcem zavolat napriklad post(array('index1','index2','index3')) tak nech to vrati hodnotu alebo false ak nieco take v poste nieje ... ale ako parsovat ten predany index a zistit ci je v poste co najrychlejsie


Offline

Správca fóra
Správca fóra
post funkcia a post pole

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 27.05.2014 11:17

Zda sa ti, ze riesenie cez cyklus je pomale. ci preco hladas nieco ine? Logicky, najrychlejsie to bude bez pouzitia funkcie, priamo uvedenim mena premennej aj s indexmi, opacny pripad a jeho rychlost spracovania si musis uz otestovat sam. Ako som uz spominal vyssie, mozes pouzit aj nieco taketo:
Kód:
array_reduce($index, $callback, $_POST)

V samotnej $callback funkcii potom zabezpecis, aby ti vratilo v pripade existencie jednotlivych vnorenych indexov hodnotu daneho prvku pola, alebo false pri chybe.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56
Príspevok Napísal autor témyOffline : 27.05.2014 12:56

no vacsinou su primarne php funkcie rychlejsie ako cyklus .. preto hladam odpoved co bude najrychlejsia moznost .. neskusal som to vsak preto sa pytam ci mi niekto nieco poradi co by som s cyklusom porovnal ...

pre pouzitie tej funkcie array_reduce musim tie predane indexy tak isto iba prechadzat cyklusom aby som ich po jednom predal funkcii a zistil ci v tom $_POST poli dany index existuje nie ? .. vobec nvm ako to myslis s pouzitim tej funkcie


Offline

Správca fóra
Správca fóra
post funkcia a post pole

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 27.05.2014 13:26

Nie, tam ziadny vlastny cyklus na prechadzanie jednotlivych indexov nepotrebujes pouzit, o to sa ti stara callback funkcia. Do nej sa ti vzdy automaticky preda jeden z indexov, s ktorym potom mozes pracovat a zistovat, ci existuje v cielovom poli ($_POST). Ak sa tam taky nachadza, budes pracovat uz len so zvysnou castou pola patriacou pod dany index. A takto sa to stale opakuje, kym sa nevycerpaju vsetky indexy, ktorych existenciu chces zistit. Pozri si priklady v manuali, bude ti to hadam jasnejsie.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56
Príspevok Napísal autor témyOffline : 27.05.2014 19:06

aha tou funkciou mam prechadzat predane indexy ... uz rozumiem o co ti ide .. tu funkciu som ale vyskusal a sprava sa to divne

Kód:
$arr = array('billing' => array('name' => array('first' => "meno")));           

function callback2($carry, $item)
{
      print_r($carry);
      return $carry;
}
   
echo '<pre>';
var_dump(array_reduce(array('billing', 'name', 'first'), 'callback2', $arr));
echo '</pre>';


Citácia:
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )

array
The input array.

callback
mixed callback ( mixed $carry , mixed $item )

$carry
Holds the return value of the previous iteration; in the case of the first iteration it instead holds the value of initial.

$item
Holds the value of the current iteration.

initial
If the optional initial is available, it will be used at the beginning of the process, or as a final result in case the array is empty.


preco to pole nevidim vypisane 3x .. na zaciatku mu predam cele pole a chcem vytiahnut hodnotu prveho indexu ... ale to pole tam proste nieje ... vysledok toho kodu je:
Citácia:
111int(1)


preco tam su 3x1 ked mi to ma vypisat pole ... nie ? .. ak plati ze $carry drzi hodnotu ktoru vrati v predoslej iteracie ... a pri prvej iteracii drzi hodnotu $initial .. tak by tam malo byt trikrat to pole ... nechapem tomu ..


Offline

Správca fóra
Správca fóra
post funkcia a post pole

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 27.05.2014 19:41

Pravdepodobne pouzivas php verziu < 5.3, to by vysvetlovalo, preco ti to vypise 1.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56
Príspevok Napísal autor témyOffline : 27.05.2014 20:37

aha vazne nevsimol som si changelog .. kurnik ... cize mi to je na prd ... to by bolo idealne riesenie myslim .. mas inu radu ?


Offline

Správca fóra
Správca fóra
post funkcia a post pole

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 27.05.2014 20:50

Ak nemozes pouzit 3. parameter, jednoducho si jeho funkcionalitu doplnis do callback funkcie (kvoli prvej iteracii) a osetris este pripad, ak je predane pole s indexami prazdne.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 05.10.06
Prihlásený: 15.10.18
Príspevky: 1891
Témy: 148
Bydlisko: Bratislava
Príspevok NapísalOffline : 27.05.2014 23:27

Preco to zbytocne komplikujes a chces vybrat konkretnu hodnotu aj z 2D pola? Podstatne jednoduchsie by bolo nacitat cele pole a potom si uz vyberies

$arr = post('pole');
echo $arr['2D'];

Ja osobne casto vyuzivam funkciu, ktoru som si pozical z phpbb. Najdes ju v includes/functions.php , vola sa request_var() a vytiahnes s nou post, get, cookies, multibyte hodnoty, nastavis si default hodnotu ak hodnota nie je odoslana..







_________________
Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 28.02.09
Prihlásený: 19.02.18
Príspevky: 241
Témy: 56
Príspevok Napísal autor témyOffline : 28.05.2014 0:31

preto, ze je podstatne jednoduchsie napisat
Kód:
if (post(array('shipping', 'same_as_billing'))=='1') { .... }

ako:
Kód:
$shipping = post('shipping');
if (isset($shipping['same_as_billing']) && $shipping['same_as_shipping']=='1') { .... }


a ak mas rozmernejsie pole v poste je tam toho "zbytocneho" kodu ktory mozem napisat jednou funkciou a predat jej parameter dost vela

// Spojený príspevok Str 28.05.14 0:34

Kamahl píše:
Ja osobne casto vyuzivam funkciu, ktoru som si pozical z phpbb. Najdes ju v includes/functions.php , vola sa request_var() a vytiahnes s nou post, get, cookies, multibyte hodnoty, nastavis si default hodnotu ak hodnota nie je odoslana..

s phpbbb som este nepracoval .. mozem mi tu postnut tu funkciu ak si myslis ze to moj "problem" vyriesi ?


Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 05.10.06
Prihlásený: 15.10.18
Príspevky: 1891
Témy: 148
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.05.2014 1:12

Hned prve 2 funkcie https://raw.githubusercontent.com/phpbb ... ctions.php request_var() a vyuziva set_var()







_________________
Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro
Offline

Správca fóra
Správca fóra
post funkcia a post pole

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.05.2014 9:00

Kamahl píše:
Ja osobne casto vyuzivam funkciu, ktoru som si pozical z phpbb. Najdes ju v includes/functions.php , vola sa request_var() a vytiahnes s nou post, get, cookies, multibyte hodnoty, nastavis si default hodnotu ak hodnota nie je odoslana..

Jeho problem to ale neriesi. Ta funkcia vracia opat len pole s pozadovanymi indexami, nie priamo hodnotu daneho prvku pola. Navyse je obmedzena len na 2 urovne (vacsinou to ale staci), takze v pripade vacsieho pola je to v podstate nepouzitelne.







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
post funkcia a post pole

Registrovaný: 05.10.06
Prihlásený: 15.10.18
Príspevky: 1891
Témy: 148
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.05.2014 13:21

Ved to som mu aj pisal, ze preco to komplikuje. Nech si vrati pole a potom si z neho uz klasicky vyberie hodnotu, ktoru potrebuje. Jendoduchsie riesenia su tie najlepsie.







_________________
Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro
Odpovedať na tému [ Príspevkov: 16 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. ako uchovat pole POST v pamati?

v PHP, ASP

2

575

02.05.2007 17:14

p360t Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Post Moderátora

v Správy pre vedenie fóra

6

2022

18.02.2012 12:02

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POLE

v Assembler, C, C++, Pascal, Java

10

1492

18.11.2006 10:07

audiotrack Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Opušťam post MODA

v Správy pre vedenie fóra

10

1848

12.11.2005 18:43

To[m]aS Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular metodou POST

v PHP, ASP

19

1239

24.05.2009 17:34

Unlink Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. štruktúra POST-u

v Ostatné

1

1133

28.01.2007 14:48

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Last post info

v Redakčné systémy

0

683

14.10.2006 14:54

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. class get/post

v PHP, ASP

0

510

06.06.2010 18:20

Unlink Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Report Post Hack

v Redakčné systémy

2

1006

02.08.2006 20:35

rEnEeK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nefunguje post.sk?

v Služby a webstránky

4

2603

16.01.2009 17:29

adam230 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hide Post Buttons

v Redakčné systémy

0

2259

14.10.2006 15:06

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. post.sk - kontakt

v Sieťové a internetové programy

18

12757

22.04.2011 10:38

derdis Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. filter POST data

v PHP, ASP

1

350

29.06.2013 21:07

Pablo Montero Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Textové pole

v HTML, XHTML, XML, CSS

2

506

13.09.2012 15:16

janosihelsky Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. textove pole

v JavaScript, VBScript, Ajax

5

577

20.06.2009 15:38

Snacker Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole..

v PHP, ASP

3

413

28.09.2011 22:56

Ando Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra