1

我正在使用速度模板语言和 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);
            }
        }
    }

4

1 回答 1

0

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

于 2016-07-07T13:55:44.430 回答