我从这篇文章得到了答案[如何发送或分配Jquery变量值到php变量?但我的PHP无法获取Jquery传递的值
这是HTML代码
<a href="random.php" id="comp1">comp1</a>
<a href="random.php" id="comp2">comp2</a>
<a href="random.php" id='comp3'>comp3</a>
Jquery代码$('a').click(function(){
$.ajax({
type: 'POST',
url:'random.php',
data: {name:$(this).attr('id')
}
}).done(function(msg){
alert(msg)
})
})
和PHP代码
<?php
$id = $_POST['name'] ;
echo $id;
?>
我猜您可能想使用e.preventDefault();
来防止超链接的默认行为。因为你的<a
标签有一个链接到random.php
,这是跳转到另一个页面。
$('a').click(function(e){
e.preventDefault();
.....
}
你的代码可以这样写:
$('a').click(function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url:'random.php',
data: {name:$(this).attr('id')}
}).done(function(msg){
alert(msg);
});
});
event.preventDefault()
的文件在这里:
http://api.jquery.com/event.preventdefault/
这可能不是主要问题,但你不必像这样写href
到random.php
:
<a href="random.php" id="comp1">comp1</a>
我想你可以这样写:
<a href="#" id="comp1">comp1</a>
或者像这样:
<a href="javascript:void(0)" id="comp1">comp1</a>
你可能想要阅读此页:
"href"我应该为JavaScript链接使用的值"#"或"javascript:无效(0)"?
试试这个,你需要阻止onclick动作进入那个页面。
$(document).ready(function() {
$("a").click(function() {
$.ajax({
type: "POST",
url: "random.php",
data: {"name" : $(this).attr('id')}
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
return false; // prevent from browsing that page
});
});
HTML:
<a href="javascript:;" id="comp1">comp1</a>
<a href="javascript:;" id="comp2">comp2</a>
<a href="javascript:;" id='comp3'>comp3</a>
JS:
$('a').click(function(){
$.ajax({
type: "POST",
url: 'random.php',
data: { name: $(this).attr('id') }
})
.done(function( msg ) {
alert( msg );
});
});
在事件处理程序中使用href="javascript:;"
attr或e.preventDefault();
来阻止链接执行