0

ユーザーが会社情報を入力するフォームがあります。次に、jquery を使用して住所を検証し、submitHandler 内に検証済みの住所の経度/緯度を取得する次のスクリプトがありますが、経度/緯度はフォームと共に送信されません。(現在、テスト目的で、リンクにロング/ラット ルックアップのアドレスがハード コードされています。) また、ここで取得できる Google Maps API v3 用の独自の API キーを提供する必要があることに注意してください

注: Stack Overflow の構文ハイライターに問題があるため、PastBin からコードをリンクします。

これは、経度/緯度のスクリプトです。


投稿できるリンクの数に制限があるため、できればこの投稿の後に残りのコードへのリンクを投稿します。


ASPXページのコードビハインド内でPOSTを使用して画像のURLを設定する方法

private void DisplayImages(string imageFile)
{
        Image pImage = new Image();
        pImage.ImageUrl =  imageFile;
        this.Controls.Add(pImage);

}

上記は現在のコードですが、画像が表示されないため、URL 値を確認したいと考えています。URLをチェックしてURLを返すJavaScript関数があります。私がする必要があるのは、POST と呼ばれるものを使用して、javascript から返された URL を上の画像に割り当てることだけです。上記の関数の分離コードでこれを達成するにはどうすればよいですか?

提案してください。

更新 1:「this.Controls.Add(pImage);」を追加するのを忘れていました。上に追記しました。

更新 2: ページの onLoad 中にイメージ コントロール (コードに示すように) を作成しています。この URL は通常より長く、XML から取得されます。画像コントロールに割り当てる前に URL 値を出力しました。

何らかの理由で、画像がブラウザでレンダリングされません。たった今、その URL を別のブラウザーで表示しても HTTP 403 になることがわかりました。その URL を作成して XML に保存した人は、Javascript を使用し、この URL を送信して POST を実行する必要があると教えてくれました。POST メソッドの後に画像 URL が割り当てられるように、以下のコードで JavaScript を実行する方法を知る必要があります。これが明確になることを願っています。

更新 3 : 以下は ASPX ページの Javascript です。

    <script type="text/javascript">
        // Open URL in new window with a a post instead of the get
        function posturl(url) {
            alert("I am here");
            var qsBegin = url.indexOf("?");
            var qsPattern = new RegExp("[?&]([^=]*)=([^&]*)", "ig");
            var match = qsPattern.exec(url);
            var params = new Array();

            while (match != null) {
                // matched text: match[0]
                // match start: match.index
                // capturing group n: match[n]
                var matchID = match[1];
                if ( matchID.charAt(0) == "&" ) {
                    matchID = matchID.substr(1);
                }

                if ( params[match[1]] != null && !(params[match[1]] instanceof Array) ) {
                    var subArray = new Array();
                    subArray.push(params[match[1]]);
                    subArray.push(unescape(match[2]));
                    params[match[1]] = subArray;
                } else if ( params[match[1]] != null && params[match[1]] instanceof Array ) {
                    params[match[1]].push(unescape(match[2]));
                } else {
                    params[match[1]]=unescape(match[2]);
                }   
                match = qsPattern.exec(url);
            }

            var myForm = document.createElement("form");
            //myForm.setAttribute("target", "_blank");
            myForm.method="post" ;
            myForm.action = url.substring(0,qsBegin) ;
            for (var k in params) {
                var myInput;
                // Check for params with the same name.
                if ( params[k] instanceof Array ) {
                    for ( var i=0; i<params[k].length; i++ ) {
                        myInput = createFormInput(k, params[k][i]);
                        myForm.appendChild(myInput) ;
                    }
                } else {
                    myInput = createFormInput(k, params[k]);
                    myForm.appendChild(myInput);
                }
            }

            document.body.appendChild(myForm) ;
            myForm.submit() ;
            document.body.removeChild(myForm) ;
            //return "did you get what you wanted";
        }
</script>
4

1 に答える 1

0

緯度と経度の 2 つの非表示の入力をフォームに追加し、ジオコーディングが完了したら、これらの入力の値を入力します。

于 2012-05-22T23:11:26.717 に答える