1

私は速度テンプレート言語と JavaScript を使用してお問い合わせページに取り組んでいます。

要件は、a) お客様が 2 つのドロップダウン (場所とショップ名) から値を選択し、[送信] ボタンをクリックすることです。

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 の質問であり、使用したテンプレートまたはマークアップに関係なく、答えは同じです。ユーザーに表示するには、サーバーからのAJAX応答で取得したアドレスで(javascriptを介して)domを書き換える(divのinnerHTMLを設定する)必要があると思います。

于 2016-07-07T13:55:44.430 に答える