我有一个常规的锚标签,它被绑定到$ .post()但是我无法绕过传递参数的最佳方法。这就是我所拥有的:
<a
href="ajax/tag_delete.php?id=<?php echo $tag->id;?>" <!-- This feels too "GET" and I don't want to have to parse this query string -->
id="<?php echo $tag->id;?>" <!-- this feels wrong, shouldn't have a number as an id -->
class="delete_tag_btn">
delete
</a>
<script>
$('.delete_tag_btn').bind('click', function(event){
event.preventDefault();
$.post( this.href, {/* WHAT IS THE BEST WAY TO GET THESE */}, function(reply) {
log(reply);
});
});
</scirpt>
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
$(this).attr('href').split('=')[1]
当然,这取决于你的url有一个querystring参数。如果需要,您可以获得更多的幻想,但这可以解决您当前的问题。
修改强>
$(document).ready(function(){
$('.delete_tag_btn').bind('click', function(event){
event.preventDefault();
var s = $(this).attr('href').split('?')[1].split('&');
var a = new Object();
for(var n = 0; n < s.length; ++n)
{
var t = s[n].split('=');
console.log(String(t[0]));
a[String(t[0])] = t[1];
}
console.log(a);
});
});
根据编辑,您可以在href
中指定任意数量的属性,然后这些属性将传递到您的post
。换句话说,您可以在整个应用程序中使用此函数任何地方,而无需指定要获取的密钥:
$.post(
this.href,
data: a,
function(reply) {
log(reply);
});
答案 1 :(得分:0)
实际上,应工作。您可能需要删除空对象参数并切换到.get调用...
$.get(this.href, function(reply){
// Do whatever
});
另一方面,您始终可以创建一个对象......
var data = {
id: $(this).attr('id')
}
然后在.post电话中传递...
$.post(this.href, data, function(reply){
// Do whatever...
})