Jquery使用参数加载动态内容

时间:2012-05-22 01:14:39

标签: php jquery

我正在尝试根据点击的href加载div内容并传入参数。例如,链接1 单击链接1将值“3”传递给process.php,并返回值“apple is good for you”。

但是,如果没有提交按钮,我似乎无法传递值。无论如何我可以将参数传递给另一个php文件进行处理,并返回值?

$(document).ready(function(){
     $("#testing a").live("click", function(evt){
         var id= $(this).attr('id');
        $.post("process.php", { id: id },
        function(data) {
          alert(data);
                    $('#result').load(data);
        });
     })

});

以下是我的HTML

<div id="testing">
<a href="" id="11"> hello </a>
</div>

<div id="result"></div>

感谢您的帮助,非常感谢!

1 个答案:

答案 0 :(得分:3)

您不应该使用id值的数字。相反,在它们前面添加一个字母,或者考虑将它们添加到元素上的data-属性中。

此外,我们已弃用$.live(),我们鼓励我们从此处开始使用$.on()进行事件委派。我已经在下面的代码中处理了这个问题,但id问题仍然存在。

最后,$.load()$.html()不一样。如果你想加载 data到一个元素中,你就不会调用load方法(虽然这个名字可能导致这种混淆)。

// Short-hand version of $(document).ready();
$(function(){
  // Handle anchor clicks on #testing
  $("#testing").on("click", "a", function(e){
    // Prevent links from sending us away
    e.preventDefault();
    // POST our anchor ID to process.php, and handle the response
    $.post("process.php", { 'id': $(this).attr("id") }, function(data){
      // Set the response as the HTML content of #result
      $("#result").html(data);
    });
  });
});

从您的process.php文件中,您可能会遇到以下内容:

$msg = array( 
    "...chirp chirp...",
    "This is response number 1",
    "And I am the second guy you'll see!",
    "Apples are good for you!" 
);

$num = $_POST["id"] || 0;

echo $msg[ $num ];