1

我对脚本的了解非常有限,所以我希望你们能帮助我解决我遇到的一个小问题......

单击链接时,我正在使用以下 jquery 函数用新内容刷新 div

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

我的问题是,我需要将 2 个变量发送到 reload.php 页面以在 mysql 查询中使用(我不知道如何实现),我还需要使多个链接与这个函数一起工作,目前我有具有相同 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

首先,您应该使用 .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 回答
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应该使用$GET. 此外,您需要class为链接使用名称,而不是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 回答