【问题标题】:How to call ajax call in velocity template language?如何在速度模板语言中调用 ajax 调用?
【发布时间】:2016-11-08 16:41:31
【问题描述】:

我正在使用velocity模板语言和javascript制作联系我们页面。

要求是 a) 客户从两个下拉列表(位置和商店名称)中选择值,然后单击提交按钮

b) 此过程使用 AJAX 调用处理(无需重新加载页面)并在同一页面的下拉列表下方显示地址

我已经开发了表单的 UI 界面(在 contact.vtl 上)。在点击事件上,我可以调用 AJAX 调用,在该控件转移到 contact-detail.vtl 之后,我无法继续前进?

如何将响应发送回contact.vtl?

function ajaxCall(){
        function getXMLRequestObject() {
            if(window.XMLHttpRequest) {
                return new XMLHttpRequest();
            } else if(window.ActiveXObject) {
                return new ActiveXObject("Microsoft.XMLHTTP");
            } else {
                alert("Your Browser does not support AJAX!! .Upgrade to latest version");
            }
        }

        var url="/application/vtl/widgets/contact-us/contact-detail.vtl?loc=XYZ&shop=ABC";

        var userContactReq = getXMLRequestObject();

        if ( userContactReq.readyState === 1 ||  userContactReq.readyState === 2 ||  userContactReq.readyState === 3 ) {
            userContactReq.abort();
        }
        userContactReq  = getXMLRequestObject();
        if ( userContactReq.readyState === 4 ||  userContactReq.readyState === 0 ) {
            userContactReq.open("GET",url,true);
            userContactReq.onreadystatechange = setReqSuccess;
            userContactReq.send(null);
        }

        function setReqSuccess() {

            if(userContactReq.readyState === 4){alert("Ready State is 4");}
            if(userContactReq.status === 200){alert("Status is 200");}

            if(userContactReq.readyState === 4 && userContactReq.status === 200) {
               
               ## How to recieve response here
                var responseString = userContactReq.responseText;
               

                console.log("end");
                alert(responseString);
            }
        }
    }

【问题讨论】:

  • 嗨@Sran! jQuery 将把你从所有的样板中拯救出来。

标签: javascript ajax velocity dotcms vtl


【解决方案1】:

这真的与 Velocity 无关。这是一个 javascript 问题,无论您使用什么模板或标记,答案都是一样的。我认为您需要(通过 javascript)使用您在服务器的 AJAX 响应中获得的地址重写 dom(设置 div 的 innerHTML),以将其显示给您的用户。

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2015-03-17
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多