<json name="jmeno_vytvorene_promenne" variable="jmeno_promenne_s_hodnotou">hodnota</json>
Vloží atribut zadaného jména (name
) do json objektu.
Atributy:
name
- (povinný) Jméno atributu výsledného JSON objektu.variable
- (nepovinný) Jméno XML proměnné, která se vloží do json objektu. Pokud není zadáno, použije se pro hodnotu textový obsah tagu.
Poznámka: pokud má XML formulář zpracovávat json požadavky, musí mít kořenový element (<ronform> nebo <ronxml>) nastaven atribut enablejson="1"
nebo mode="json"
.
<?xml version="1.0"?> <!-- RON Software, 12-2014 --> <ronxml xmlns="http://www.ron.cz/xmlforms/" xmlns:html="http://www.w3.org/1999/xhtml" mode="json"> <json name="test">nejaky text {$USER_RC} ěščřšřžýřýáííá</json> <sqlvariable name="var_z_sql">SELECT RC, Jmeno, Prijmeni FROM Osoba WHERE RC = {$USER_RC}</sqlvariable> <json name="jmeno">{$var_z_sql[1]}</json> <json name="prijmeni">{$var_z_sql[2]}</json> </ronxml>
Vygeneruje json objekt, který obsahuje položky test
, jmeno
a prijmeni
.
Výsledek lze zobrazit pomocí URL s těmito parametry:
?menuid=xmlform&action=json&xmlid=<id_formulare>
<?xml version="1.0"?> <!-- RON Software, 06-2021 --> <ronxml xmlns="http://www.ron.cz/xmlforms/" xmlns:html="http://www.w3.org/1999/xhtml" mode="show" enablejson="1"> <block variable="GET_action"> <!-- tento blok se provede v pripade, ze je nastaven parametr action v URL requestu a ma neprazdnou nenulovou hodnotu --> <json name="test">nejaky text {$USER_RC} ěščřšřžýřýáííá</json> <sqlvariable name="var_z_sql">SELECT RC, Jmeno, Prijmeni + ' abcřž' FROM Osoba WHERE RC = {$USER_RC}</sqlvariable> <json name="jmenoUzivatele">{$var_z_sql[1]}</json> <json name="prijmeniUzivatele">{$var_z_sql[2]}</json> <json name="xmlId">{$XML_IDSABLONY}</json> <!-- Inkrementuje promennou pocetCelkem v SESSION. Pokud jeste nebyla nastavena, nastavi ji na 1, protoze {$SESSION[pocetCelkem]:int} v tom pripade vraci hodnotu 0 --> <expression name="pom">{$SESSION[pocetCelkem]:int} + 1</expression> <variable name="SESSION" index="pocetCelkem" value="{$pom}" /> <json name="message">Událost č. {$SESSION[pocet]} (celkem {$SESSION[pocetCelkem]}) - kliknul jsi na "{$GET_elementId}"</json> <!-- inkrementuje promennou pocet v SESSION --> <expression name="pom">{$SESSION[pocet]:int} + 1</expression> <variable name="SESSION" index="pocet" value="{$pom}" /> <!-- dale nepokracuje, obsluha ajax requestu tady konci --> <exit/> </block> <!-- pri generovani stranky nastavi promennou "pocet" v SESSION na 1 --> <variable name="SESSION" index="pocet" value="1" /> <div id="klikni_1" class="klikaci background-lime padding-all-2 margin-all-2">Klikni na me</div> <div id="klikni_2" class="klikaci background-orange border padding-all-2 margin-all-2">Klikni na me</div> <div id="vysledky"></div> <html:script> let // provede se po prijeti vysledku ajax volani processResult = function(resultData) { console.log(resultData); $("<div/>") .text("Přišla odpověď: " + resultData.message + ", uživatel: " + resultData.jmenoUzivatele + " " + resultData.prijmeniUzivatele) .appendTo("#vysledky"); }, // provede se pri kliknuti na element s class="klikaci" klikaciOnClick = function() { mojeData = { elementId: $(this).attr("id") }; $.ajax({ //url: "?menuid=xmlform&action=json&xmlid={$XML_IDSABLONY}" url: "{$XML_LINK_JSON:html}", data: mojeData }).done(processResult); } $(".klikaci").on("click", klikaciOnClick); </html:script> </ronxml>