<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>