1

我正在尝试根据单击的 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>

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

4

1 回答 1

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 ];
于 2012-05-22T01:20:52.807 回答