RON dokumentace

XML formuláře CSS Javascript

<json>

  <json name="jmeno_vytvorene_promenne" variable="jmeno_promenne_s_hodnotou">hodnota</json>

Vloží atribut zadaného jména (name) do json objektu.

Atributy:

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

Příklady použití


<?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&amp;action=json&amp;xmlid={$XML_IDSABLONY}"
            url: "{$XML_LINK_JSON:html}",
            data: mojeData
         }).done(processResult);
       }

    $(".klikaci").on("click", klikaciOnClick);
  </html:script>
</ronxml>