| Autor | Zpráva | ||
|---|---|---|---|
| Stano Profil |
Dobrý deň,
mam formular: <form> <input type=checkbox value=a name=data[a]> <input type=checkbox value=b name=data[b]> <input type=checkbox value=c name=data[c]> </form> po odoslaní mám z toho pole $_POST = array('data' => array('a' => 'a', 'b' => 'b', 'c' => 'c'))a teraz moja otázka znie ako v php zistiť ktorý checkbox bol a ktorý nebol odoslaný. Názvy checkboxov sú generované automaticky, takže v php mam stringy data[a] a ja teraz potrebujem niečo ako: isset($_POST[data[a]]) len toto samozrejme nefunguje. |
||
| Keeehi Profil |
#2 · Zasláno: 22. 1. 2013, 15:02:19
Tohle fungovat bude:
isset($_POST["data"]["a"]) Ale pokud jsou toto reálné hodnoty (text data je u všech checkboxů a znak v závorce u name odpovídá znaku u value) tak je to ošklivý návrh. |
||
| Stano Profil |
tamto samozrejme funguje len ja mam iny vstup
string: data[a] string: data[b] string: data[c] pole napr: array('data' => array('c' => 'c'))
function my_isset($string, $array){
}všetko generovane automaticky takže nemám možnosť to preddefinovať. A nechcem používať eval(). nie niesu to reálne hodnoty. |
||
| Stano Profil |
síce nie najkrajšie riešenie ale zdá sa byť funkčné
function my_isset($variable, $array = array()) {
$variable_array = explode('[', $variable);
if (isset($variable) AND empty($array)) {
return True;
}
foreach ($variable_array as $variable_part) {
$variable_part = str_replace(']', '', $variable_part);
if (!isset($array[$variable_part])) {
return false;
} else {
$array = $array[$variable_part];
}
}
return true;
} |
||
|
Časová prodleva: 14 let
|
|||
0