2012-03-20 8 views
1

これを行う方法の例を見てきましたが、私が見つけたのは.netまたはPHPページです。私は古典的なASPページでこれをやろうとしていて、JQueryを初めて使うので、どうやってそれをどうやって調べるかを考えています。クエリー・ストリングをAjaxがロードしたJqueryモーダル・ダイアログに渡す

私はJQueryモーダルダイアログを開くリンクを持っています。モーダルダイアログの「開く」機能は、別の.aspページからコンテンツを取り込みます。その内容は、クエリーストリング要素によってロードされたいと思います。

私はそれをテストし、静的なクエリー文字列を入力して動作させました。しかし、文字列に動的な値を渡す方法や複数の値を渡す方法( "&"を含むクエリー文字列を意味する)はわかりません。

<script type="text/javascript"> 

$(function() { 
$("#example2").dialog({ 
      autoOpen: false, 
      width: 650, 
      modal: true, 

      open: function() { 
      //here's where I need to dynamically pass multiple elements 
      $("#example2").load("test.asp?id=28&value=30");} 
     }); 

     $("#showdialog2") 
      .click(function() { 
       $("#example2").dialog("open"); 
       return false; 

     }); 
}); 

それとダイアログのdivをトリガーするリンクを:ここで

は、私が働いているコードだ

<a href="" id="showdialog2">Show the Dialog</a> 

<div id="example2" title="My First Ajax Dialog2"></div> 

これは古典的なASPページですので、道私がそこにあります「Show Dialog」リンクからquerystring要素をダイアログ呼び出しに渡すことができますか?

ありがとうございました!

+0

また、hrefをフルページアドレスに設定せずに、そのリンクを使用してクエリ文字列要素をどのように渡すことができるかわかりません。助けてくれてありがとうございます – Cineno28

答えて

1

ような何かを行うことができ、私はあなたがこれを行うにしたいと思います現在のQueryStringコレクションを使用しようとしている場合:複数のカスタム属性を使用し、より多くの変数を追加するには

<a href="/some/link/for/progressive/enhancement.asp?id=<%= id %>" id="showdialog2" data-id="<%= id %>">Show the Dialog</a> 

<div id="example2" title="My First Ajax Dialog2"></div> 

を余分なものを含めるように以下を修正してください。

$(function() { 
    $("#example2").dialog({ 
     autoOpen: false, 
     width: 650, 
     modal: true, 

     open: function() { 

    }); 

    $("#showdialog2") 
     .click(function() { 
      $("#example2").dialog("open"); 
      $("#example2").load("test.asp?id=" + $(this).attr('data-id') + "&value=30");} 
      return false; 

    }); 
}); 

代替は$(this).href()を使用して、手動で(おそらくそれはRegexできます)クエリ文字列を抽出するための値を解析することですが、カスタム属性を使用すると、前方より簡単な方法です。

openloadの呼び出しを連鎖させることができます。ダイアログを閉じるときに破棄しない場合は、ダイアログのデフォルトの内容を設定することをお勧めします。あなたがそれらの例を望むかどうか私に教えてください。


(ノートもpreventDefault代わりの戻り偽)チェーン:

$("#showdialog2").click(function (event) { 
    $("#example2").html('<div style="text-align: center"><img src="/assets/images/ajax-loader.gif" /></div>') 
     .dialog("open") 
     .load("test.asp?id=" + $(this).attr('data-id') + "&value=30"); 
    event.preventDefault(); 
}); 

そこにあるだけのAjaxスピナー(get yours here)を持つようにクリックでダイアログがリセットされますので、あなたは、再できますリロードせずに使用してください。

+0

助けをありがとう。私はそれをテストするためにこれを試しました:Show the Dialog。残りのコードは同じままです。ダイアログが正常に開いていて、ダイアログ内のtest.aspはクエリー文字列からのidの応答ですが、 "undefined"と表示されています。私が逃しているものは何ですか? – Cineno28

+0

これは問題ありません。ロード機能を#showDialog2セクションに移動したことに気づいていませんでした。あなたが最後の段落であなたが何を参照していたの例を提供することができれば、私は間違いなくそれを感謝します。あなたの助けをありがとう! – Cineno28

+0

コンテンツが読み込まれるのを待っている間、ダイアログにajaxスピナーを配置する例を追加しました。 –

1

あなたはこの

<% 
Sub outputQueryString() 
    dim key 
    for each key in Request.Querystring 
     Response.Write key & "=" & Request.Querystring(key) & "&" 
    next 
End Sub 
%> 


$("#example2").load("test.asp?<% outputQueryString() %>");} 
+0

おかげさまで、ありがとうございます。しかし、私がしたいのは、新しいクエリ文字列要素をロード関数に渡すことです。私はページ上にいくつかのリンクを持っています。リンクにはID番号やその他の値が含まれていますので、クリックしたときにロード機能がこれらの値を受け取り、適切なコンテンツをダイアログ。私は明確であることを願っています。提案にもう一度感謝します。 – Cineno28

+0

あなたの質問に言い換えていただけますか?あなたは、ダイアログ取得リクエストに表示したいID番号を含むリンクの例を投稿できますか? –

+0

確かに。私はこの状況でどうすればいいのか分かりませんが、通常は次のようなリンクがあります。click hereこれは、クエリーストリングを読み込み、id値に基づいてコンテンツを読み込むanotherPage.aspをロードします。しかし、私はモーダルダイアログを使用しているので、そのid値を自分のページ内のダイアログに渡すことができるようにしたいと思っています。そして、渡されたクエリー文字列を読み込むanotherPage.aspからコンテンツを読み込むためのダイアログ。私はそれがはっきりしたことを望む。助けてくれてありがとう。 – Cineno28

関連する問題