una - ¿Cómo usar ajax en Formas de ofbiz?
peticion ajax ejemplo (1)
Encontré una manera de resolver este problema. Utilizaremos js para publicar, enviar una solicitud y obtener datos con formato json. Ejemplo:
- mis formas: - crear test.js:
<field name="firstFieldId"> <drop-down allow-empty="false"> <list-options key-name="firstFieldId" list-name="listOptions1" description="${des1}"/> </drop-down> </field> <field name="secondFieldId"> <drop-down allow-empty="false"> <list-options key-name="secondFieldId" list-name="listOptions" description="${des2}"/> </drop-down> </field>
$(document).ready(function(){ $("select[name=''firstFieldId'']").change(function(){ update($(this).val()); }); }); function update(id) { jQuery.ajax({ url: ''myRequest'', type: "POST", data:{ firstFieldId: id }, success: function(res) { var data = res.listOptions; renderHtml(data); } }); } function renderHtml(data){ var y = ""; for (var x in data){ y += "<option value=''" + data[x].secondFieldId + "''>"; y += data[x].des2 + "</option>"; } $("select[name=''secondFieldId'']").html(y); }
- Pantallas
<actions> <set field="layoutSettings.javaScripts[+0]" value="/delys/images/js/logistics.js" global="true"/> </actions>
Controller.xml:
En myService, las opciones de listOptions se analizarán en formato json.<request-map uri="myRequest"> <security auth="true" https="true"/> <event type="service" invoke="myService"></event> <response name="success" type="request" value="json"></response> </request-map>
petición json en common-controller.xml:
Este es mi camino, gracias!<request-map uri="json"> <security direct-request="false"/> <event type="java" path="org.ofbiz.common.CommonEvents" invoke="jsonResponseFromRequestAttributes"/> <response name="success" type="none"/> </request-map>
Estoy usando una etiqueta desplegable, pero quiero actualizar otros campos después de haber seleccionado una opción en esto. Lo estoy usando en Forms. Sé que podemos usar ajax para enviar y actualizar, pero en ftl, no puedo encontrar qué atributo de campo o desplegable puede ayudar?
¡Gracias!