| 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: 11 let
|
|||
0