Autor | Zpráva | ||
---|---|---|---|
PHP-Slon Profil * |
#1 · Zasláno: 24. 4. 2015, 18:29:30
Zdravím,
mám následující problém. Mám hlavní kategorii a ta má podkategorie. Snažím se o editaci a načítání dat pomocí POST. Tzn. načtu kategorii a všechny její podkategorie, vznikne mi tento formulář: INPUT název kategorie INPUT název podkategorie INPUT název podkategorie INPUT název podkategorie Na formuláři udělám POST a $nameCategory = $_POST['nazev-kategorie']; je v pořádku a podkategorie chci tahat jako pole. Inputy u podkategorií mají id="nazev-podkategorie-0", id="nazev-podkategorie-1", id="nazev-podkategorie-2" ...kvůli labelum ve formuláři, které se na ně odkazují pomocí atributu for="podkategorie-0" atd... doposud v pořádku. Situace kdy dám name takto (např. name="nazev-podkategorie[ID]"). Každý input mi ošetřuje funkce setInputTextValue() na vrácení atributu value="" po proběhnutí POSTU, třeba kvůli chybám ve formuláři. Ukázka: <input type="text" placeholder="<?php echo l('Název podkategorie'); ?>" id="nazev-podkategorie-<?php echo $i; ?>" name="nazev-podkategorie[<?php echo $i; ?>]" maxlength="64" class="form-control"<?php setInputTextValue('odeslat', 'nazev-podkategorie[' . $i . ']', @$dataSubcatQuery['name']) . ']'; ?>> Ukázka funkce: function setInputTextValue($formName, $inputName, $value) { //TADY když si dám echo $_POST[$inputName], tak nevypíše nic, protože to ztratil v POSTU kvůli tomu, že mám v name znaky [] .... } Vzhledem k tomu, že ztratil focus kvůli [], fajn to je řešitelné kdy místo závorek dám nazev-podkategorie-ID ale ani v obouch případech ty data prostě potom nenačtu jednoduše do pole pomocí $_POST['nazev-podkategorie'], protože tam mám buď závorky a v nich ID a nebo -ID. Tzn. předpokládam, že pro načítání dat z formuláře do pole musí být stejný name ale pak mi nebude fungovat ta moje funkce na vrácení value. Nechá se s tím něco dělat? Předem díky za nějaký hinty. |
||
juriad Profil |
PHP-Slon:
Tak si v té funkce setInputTextValue rozeber $inputName .
function setInputTextValue($formName, $inputName, $value) { $indices = preg_split('/[][]/', $inputName, -1, PREG_SPLIT_NO_EMPTY); $val = $_POST; foreach ($indices as $index) { $val = $val[$index]; } echo $val; # tady uděláš něco chytřejšího } nazev-podkategorie[0] , případně cokoli složitějšího.
|
||
Časová prodleva: 9 let
|
0