| Autor | Zpráva | ||
|---|---|---|---|
| nethor Profil |
#1 · Zasláno: 20. 8. 2014, 11:09:30
Zdravím,
ve formuláři mám (z důvodu dalšího zpracování) vstupy pojmenované tímto způsobem: <textarea name="new[0][Text]"></textarea> <input type="checkbox" name="new[0][Display]"> ... Po odeslání jsou v $_POST ve vícerozměrném poli $_POST["new"][0]["Text"] $_POST["new"][0]["Display"] Je v PHP nějaká funkce, která by vracela hodnotu podle param name ? Něco jako $value = GetValueFromPost("new[0][Text]") ;
Samozřejmě jde napsat; rozparsovat name a rekurzí získat hodnotu z $_POST, ale nechci na to jít zbytečně obklikou. |
||
| juriad Profil |
<?php
function getFromArray($array, $key) { # zruš první parametr
# toto jsem trochu zjednodušil oproti původní verzi v [#3]
$keys = preg_split('/[][]/', $key, -1, PREG_SPLIT_NO_EMPTY);
$val = $array; # nahraď za $_POST
foreach ($keys as $k) {
$val = $val[$k];
}
return $val;
}
$a["new"][0]["Text"] = "A";
$a["new"][0]["Display"] = "B";
echo getFromArray($a, "new[0][Text]");Tady máš funkci, která to dělá nad obecným polem; upravit to snad dokážeš. |
||
| nethor Profil |
#3 · Zasláno: 20. 8. 2014, 11:36:03
juriad:
Pěkný. Díky. ... kdyby se to někomu hodilo: function GetValueFromPost($key) {
preg_match_all('/[^][]+/', $key, $results);
$keys = $results[0];
$val = $_POST;
foreach ($keys as $k) {
$val = $val[$k];
}
return $val;
} |
||
|
Časová prodleva: 12 let
|
|||
0