Na četná přání čtenářů pokračujeme v sérii článků o práci s programem Dreamweaver MX. V jednom z předchozích článků jsme si ukázali tvorbu modulu pro vkládání záznamů do našeho adresáře. Tentokrát se podíváme na tvorbu komponenty pro editaci záznamů.

Než budeme pokračovat, podívejme se, v jakém stavu jsme naši aplikaci opustili:

Stávající stav aplikace

Pravý dolní sloupec tabulky využijeme pro vložení odkazu pro aktivaci modulu pro editaci kontaktu – do buňky tabulky vložíme text Editace kontaktu. V Property inspectoru poté definujeme odkaz: políčko Link bude obsahovat řetězec edit.php?id=<? echo $row_Adresy_vypis['id'];?>. Tím zaručíme předání parametru ID, který identifikuje aktuální záznam, do formuláře na stránce edit.php, kterou zakrátko vytvoříme. Pro programátory – začátečníky dodávám, že pro dnešek je to jediný kousek kódu, který je nutno ručně dopsat.

Následně se přesuneme do nabídky FileNew a podobně jako v předchozím článku v dialogu vybereme položku Dynamic Page – PHP, kterou pomocí klávesové kombinace Ctrl+S ihned uložíme pod názvem edit.php:

Nová stránka

Podobně jako u vkládání záznamů, i v případě jejich editace Dreamweaver nabízí již vytvořený modul, který potřebné funkce obsahuje (najdete jej v nabídce paletky Server Behaviors pod názvem Update Record). My se však z pedagogických důvodů tomuto způsobu tvorby vyhneme a ukážeme si stavbu celého modulu krok po kroku.

Vzhledem k tomu, že formulář pro editaci záznamů je velice podobný tomu, který používáme pro jejich vkládání, využijeme toho a ušetříme si práci. Otevřeme soubor insert.php a v levé části stavového řádku označíme položku form. Díky tomu dojde v editační části okna s dokumentem k označení všech položek, které jsou vnořeny mezi párové značky elementu FORM a my je tak můžeme snadno zkopírovat. Použijeme k tomu notoricky známou kombinaci Ctrl+C, následně se přepneme do dokumentu edit.php a stiskem kláves Ctrl+V vložíme objekty ze schránky. Dostáváme tak základ pro zamýšleny modul:

Základ modulu

Jak dle modrého vybarvení formulářových políček můžete odhadnout, spolu s formulářem jsme zkopírovali i kód komponenty pro vložení, který je samozřejmě nutné vymazat. Přesuneme se proto na paletku Server Behaviors, kde najdeme informaci o vložném kódu:

Server Behavior

Položku na paletce označíme a stiskneme tlačítko , čímž dojde k vymazání připojeného kódu v jazyce PHP. Nyní již modul obsahuje pouze informace o potřebném propojení na databázový server, které samozřejmě ihned využijeme.

Jednotlivá formulářová políčka jsou zatím prázdná, proto musíme zajistit jejich vyplnění atributy záznamu. Proto na paletce Bindings klikneme na tlačítko + a z nabídky vybereme položku Recordset:

Recordset

Pokud by se vám dialog zobrazil v poněkud rozsáhlejší podobě, máte aktivován rozšířený mód – klikněte na tlačítko Simple. V seznamu Connection vybereme vytvořené databázové propojení – položku Adresar – a u položky Columns necháme aktivní volbu All – tím z databázového dotazu získáme hodnoty všech atributů. Z tabulky chceme vybrat záznam, který má shodnou hodnotu atributu ID s hodnotou ID, kterou získáme jako parametr ze stránky index.php (viz výše). V políčku Filtr proto vybereme postupně položku ID, dále =, poté v dolním seznamu položku URL Parameter a opět „ID“. Tím je dotaz vytvořen a můžeme stisknout tlačítko OK:

Výběr položek

Získali jsme tak hodnoty jednotlivých atributů, které ihned vložíme do formuláře, stačí jednotlivé položky ze „stromu“ Recordset paletky Bindings přetáhnout do políček formuláře:

Vyplněné položky

Pro identifikaci záznamu v rámci aktualizací je však nutné do formuláře ještě umístit hodnotu atributu ID, který jednoznačně definuje daný kontakt. Přesuneme tedy kurzor do oblasti pod tabulkou (stále jsme však uvnitř ohraničení formuláře) a z paletky Forms vybereme komponentu Hidden Fields. Následně na paletce Property insepector klikneme na ikonku Bind to Dynamic Source (ikonka blesku vedle políčka Value), čímž danému prvku přiřadíme hodnotu atributu ID:

Přiřazení ID

Nyní už můžeme přistoupit k integraci modulu pro aktualizaci záznamu. Na paletce Server Behaviors klikneme na tlačítko + a z kontextové nabídky vybereme položku Update Record:

Update record

Objeví se nám již dobře známý dialog, s jehož pomocí definujeme kýženou akci, aktualizaci záznamu. V seznamu Connection vybereme opět položku Adresar a díky zkopírování formuláře – a tím i zachování pojmenování jednotlivých formulářových políček – se vyplní položky nabídky Columns. Vybereme první řádku seznamu Columns a výběrem položky FORM.ID ze seznamu Value, Submit as Integer a zaškrtnutím políčka Primary Key jí přiřadíme hodnotu atributu ID. Tím jsme propojili formulář s tabulkou uloženou v databázi a výkonné jádro editační komponenty je na světě. Pro úplnost ještě doplníme lokaci dokumentu, který se zobrazí po aktualizací údajů – políčko After updating, Go to, pro náš případ zvolíme hlavní stránku, soubor index.php.

Update record - výsledek

Tím je proces tvorby komponenty pro úpravu údajů završen. Nutno dodat, že aktualizace údajů by se dala v mnohém vylepšit, typickou ukázkou budiž kontrola zadávaných údajů (e-mail). Pokud jste při tvorbě komponenty narazili na problém či vám něco nebylo jasné, neváhejte mě o tom informovat v diskusi.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

1 Příspěvěk v diskuzi

  1. Dobrý večer pane Vostrý,
    používám stále verzi MX, ale nyní po instalaci na nový stroj mi nejde vytvořit fotogalerie. FW se sice rozeběhne, vytvoří se základní file, ale pak přijde hláška „Create Web Photo Album did not finish. Either an error occurred or the command was cancelled“ a celé se to ukončí. Nevíte, kde je chyba? Děkuji – s pozdravem Michal

Odpovědět