我有一个页面显示用户列表,每个用户旁边都有一个“添加为好友”链接。
现在当用户点击“添加为好友”链接时 - 我想调用Jquery并将该请求提交给后端PHP。
通常我使用Jquery的经验涉及在页面中使用单个表单并通过Jquery提交该表单 - 每个表单都有一个ID - 使用该ID我调用提交函数$(“#invite_form”)。submit(function() - 我以这种方式访问表单元素var emailval = $(“#email”)。val();
但现在我在这里没有表格,这个朋友列表正在循环中生成。 所以这里有我的怀疑
1)我是否需要在每个href标签的循环中创建一个唯一的id
2)如何更改此$(“#invite_form”)。submit(function() - 是否会成为 (“#ahref1”)。click(function()其中ahref1是href标签的唯一ID
3)如何访问Jrefery函数中的friend_id字段,该函数存在于href值中,如href =“/ action?friend_id = 32”
不确定我是否走上了正确的轨道 感谢
答案 0 :(得分:1)
您可以在jQuery中使用$ .post()或$ .get()提交后端脚本
一个例子:
$("#ahref1").click(function(){
var this_friend_id = $(this).prev('input.friend_id').val();
// Assuming that you store the id in a hidden input field like <input type="hidden" class="friend_id" val="32" /> which is defined just before the a href.
$.get('/action', {
friend_id: this_friend_id
}, function(data){
// callback after the ajax request
alert("The response is : "+data);
});
});
这应该可以解决问题。
答案 1 :(得分:0)
1)不,你没有。您始终可以使用.each()创建jquery循环,并自定义您的脚本,如
$(document).ready({
$('#friend_list a').each(function () {
// Point to current <a>
var $this = $(this);
// ... your code for each a in your list
});
});
2)您可以更改提交功能,如
$(document).ready({
$('#friend_list a').each(function () {
var $this = $(this);
// Save current href
var href = $this.attr('href');
// When user click
$this.click(function(e) {
// Doesn't follow the href path
e.preventDefault();
// ... your custom operation here
});
});
});
3)你可以使用正则表达式
$(document).ready({
$('#friend_list a').each(function () {
var $this = $(this);
var href = $this.attr('href');
$this.click(function(e) {
e.preventDefault();
// Assuming your link is in form "/action?friend_id=32"
var re = new RegExp("\d+");
var id = re.exec(href);
// I prefer AJAX method, this is just a sample, to complete
$.post('/action',
{ friend_id: id },
function(data) {
// ... result here
});
});
});
});