我正在尝试根据点击的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>
感谢您的帮助,非常感谢!
答案 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 ];