2
드롭 다운 태그를 사용하고 있지만이 옵션을 선택한 후에 다른 필드를 업데이트하고 싶습니다. 양식에서 사용하고 있습니다. 제출하고 업데이트하기 위해 아약스를 사용할 수 있지만 ftl에서는 필드 또는 드롭 다운의 어떤 속성이 도움이되는지 찾을 수 없습니다.ofbiz Forms에서 ajax를 사용하는 방법?
감사합니다.
드롭 다운 태그를 사용하고 있지만이 옵션을 선택한 후에 다른 필드를 업데이트하고 싶습니다. 양식에서 사용하고 있습니다. 제출하고 업데이트하기 위해 아약스를 사용할 수 있지만 ftl에서는 필드 또는 드롭 다운의 어떤 속성이 도움이되는지 찾을 수 없습니다.ofbiz Forms에서 ajax를 사용하는 방법?
감사합니다.
이 문제를 해결할 수있는 방법을 찾았습니다. 우리는 js를 사용하여 게시, 요청 보내기 및 json 형식의 데이터를 가져옵니다. 예 :
<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(){
\t $("select[name='firstFieldId']").change(function(){
\t \t update($(this).val());
\t });
});
function update(id) {
jQuery.ajax({
url: 'myRequest',
type: "POST",
data:{
\t firstFieldId: id
},
success: function(res) {
\t var data = res.listOptions;
renderHtml(data);
}
});
}
function renderHtml(data){
\t var y = "";
\t for (var x in data){
\t \t y += "<option value='" + data[x].secondFieldId + "'>";
\t \t y += data[x].des2 + "</option>";
\t }
\t $("select[name='secondFieldId']").html(y);
}
<actions>
\t <set field="layoutSettings.javaScripts[+0]" value="/delys/images/js/logistics.js" global="true"/>
</actions>
Controller.xml :
<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>
JSON 요청 : 내 방법입니다
<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>