[ Príspevkov: 16 ] 
AutorSpráva
Offline

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

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
NapísalOffline : 23.05.2014 18:22 | post funkcia a post pole

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: 3330
Témy: 147 | 147
Bydlisko: Žilina / Os...
Vek: 24
NapísalOffline : 25.05.2014 0:28 | post funkcia a post pole

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 25.05.2014 0:47 | post funkcia a post pole

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 25.05.2014 18:30 | post funkcia a post pole

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2014 11:17 | post funkcia a post pole

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.


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.05.2014 12:56 | post funkcia a post pole

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2014 13:26 | post funkcia a post pole

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.


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.05.2014 19:06 | post funkcia a post pole

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2014 19:41 | post funkcia a post pole

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.05.2014 20:37 | post funkcia a post pole

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2014 20:50 | post funkcia a post pole

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.


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 05.10.06
Prihlásený: 03.08.17
Príspevky: 1906
Témy: 148 | 148
Bydlisko: Bratislava
NapísalOffline : 27.05.2014 23:27 | post funkcia a post pole

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ý: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 28.05.2014 0:31 | post funkcia a post pole

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ý: 03.08.17
Príspevky: 1906
Témy: 148 | 148
Bydlisko: Bratislava
NapísalOffline : 28.05.2014 1:12 | post funkcia a post pole

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: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 28.05.2014 9:00 | post funkcia a post pole

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.


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

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

Registrovaný: 05.10.06
Prihlásený: 03.08.17
Príspevky: 1906
Témy: 148 | 148
Bydlisko: Bratislava
NapísalOffline : 28.05.2014 13:21 | post funkcia a post pole

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
 [ Príspevkov: 16 ] 


post funkcia a post pole



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

320

02.05.2007 17:14

p360t

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

883

18.02.2012 12:02

JanoF

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

Opušťam post MODA

v Správy pre vedenie fóra

10

866

12.11.2005 18:43

To[m]aS

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

štruktúra POST-u

v Ostatné

1

600

28.01.2007 14:48

p360t

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

formular metodou POST

v PHP, ASP

19

872

24.05.2009 17:34

Unlink

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

Last post info

v Redakčné systémy

0

386

14.10.2006 14:54

JanoF

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

class get/post

v PHP, ASP

0

251

06.06.2010 18:20

Unlink

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

Report Post Hack

v Redakčné systémy

2

691

02.08.2006 20:35

rEnEeK

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

Nefunguje post.sk?

v Služby a webstránky

4

2070

16.01.2009 17:29

adam230

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

Hide Post Buttons

v Redakčné systémy

0

360

14.10.2006 15:06

JanoF

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

post.sk - kontakt

v Sieťové a internetové programy

18

9318

22.04.2011 10:38

derdis

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

filter POST data

v PHP, ASP

1

84

29.06.2013 21:07

Pablo Montero

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

POLE

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

10

1054

18.11.2006 10:07

audiotrack

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

riešenie post-refresh problému

v PHP, ASP

9

310

25.07.2008 16:57

Tominator

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

(WPI)Windows Post-Install

v Operačné systémy Microsoft

0

268

22.03.2007 7:15

hely

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

post.sk blokuje emaily

v Služby a webstránky

4

265

15.12.2014 17:44

tarezni



© 2005 - 2017 PCforum, edited by JanoF