1

私はスクリプトに関する知識が非常に限られているため、私が抱えている小さな問題に対する簡単な解決策を教えていただければ幸いです...

次のjquery関数を使用して、リンクがクリックされたときにdivを新しいコンテンツで更新しています

<script> 
$(function() {       
$("#myButton").click(function() {
$("#loaddiv").fadeOut('slow').load("reload.php").fadeIn("slow");
});
});
</script>

私の問題は、mysqlクエリで使用するために2つの変数をreload.phpページに送信する必要があることです(それを達成する方法がわかりません)。また、この関数で複数のリンクを機能させる必要があります。同じ ID を持つ複数のリンクがあり、最初のリンクのみが機能するため、これを機能させるには、異なる ID を関数に関連付ける必要があると思いますが、どうすればよいですか?

これを使用しているページは次のとおりです: http://www.emulegion.info/teste/games/game.php

4

4 に答える 4

3

最初の行で関数の代わりにドキュメントレディを使用することをお勧めします。これにより、ページ全体(およびすべての要素)がロードされるまでコードが実行されないようになります。

その後、フェードとロードのコールバック関数を使用して、タイムリーにアクションを実行できます。

.phpの後に追加できる追加の変数は、reload.phpファイルで$ var1 = $_GET['var1'];として読み取ることができます。ただし、セキュリティのためにこれらをサニタイズするようにしてください。

<script type="text/javascript">

// execute when document is ready
$(document).ready(function() {

  // add click handler to your button
  $("#myButton").click(function() {

    // fade div out
    $("#loaddiv").fadeOut('slow',function(){

      // load new content
      $("#loaddiv").load("reload.php?var1=foo&var2=bar",function(){

        // content has finished loading, fade div in.
        $("#loaddiv").fadeIn('slow');

      }); // end load content

    });  // end fade div out

  }); // end add click to button

}); // end document ready

</script>

さまざまな変数について、HTML5スタイルの変数をボタンに追加できます。

<input type="button" id="myButton" data-var1="foo" data-var2="bar" />

ボタンがクリックされたときにこれを取得できます。

// add click handler to your button
  $("#myButton").click(function() {

  // get vars to use
  var var1 = $(this).data('var1');
  var var2 = $(this).data('var2');

  ... 

  load("reload.php?var1="+var1+"&var2="+var2

複数のボタン/リンクがある場合は、ID「myButton」の代わりにクラスを使用します。そうすれば、上記のスクリプトを使用してすべてのボタンに関数を適用できます。「.myButton」を「#myButton」に置き換えるだけです

于 2013-01-09T03:41:01.160 に答える
0

function必要なパラメータを受け入れるを作成してみてください。好き:

$(document).ready(function(){
    $('.link').click(function(){
        reload(p1,p2);
    });
});

function reload(param1, param2){
    $("#loaddiv").fadeOut('slow').load("reload.php?param1="+param1+"&param2="+param2).fadeIn("slow");
}

しかし、上記のコードを実行することにより、reload.phpを使用する必要があります$GETclassまた、リンクには。の代わりに名前を使用する必要がありますid

于 2013-01-09T03:39:58.820 に答える
0
<script type="text/javascript">

// execute when document is ready
**$(document).ready(function() {**

  **$("#myButton").click(function() {**

    **$("#loaddiv").fadeOut('slow',function(){**

      **$("#loaddiv").load("reload.php?var1=foo&var2=bar",function(){**

        // content has finished loading, fade div in.
        $("#loaddiv").fadeIn('slow');

      }); 

    });  
  }); 
}); 

</script>
  $("#myButton").click(function() {

  // get vars to use
  var var1 = $(this).data('var1');
  var var2 = $(this).data('var2');
于 2013-01-09T04:36:44.783 に答える
0

まず、ワンクリックの問題を解決するには、.on('click', function() または .live('click', function()) を使用する必要があります。

あなたは次のようなことをしたいと思うでしょう:

<script> 
$(function() {       
$("#myButton").on('click', function() {
var a = 'somthing';
var b = 'something_else';
$.post('url.php', {param1: a, param2: b}, function(data) {
   //data = url.php response
  if(data != '') {
   $("#loaddiv").fadeOut('slow').html(data).fadeIn("slow");
  }
});
});
});
</script>

var_dump($_POST);次に、送信されているデータを調べるために url.php を入れるだけです。

于 2013-01-09T03:36:37.877 に答える