我从这篇文章[How to send or assign Jquery Variable value to php variable?得到了答案,但不知怎的,我的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;
?>
答案 0 :(得分:2)
我猜您可能希望使用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>
您可能想要阅读此页面:
Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?
希望这有帮助。
答案 1 :(得分:1)
试试这个,您需要阻止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
});
});
答案 2 :(得分:1)
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();
来阻止链接执行。