我显示了一个搜索结果 - 在这里有一个锚标记,如下所示。
我这样做是因为,我想保留我的搜索结果。我不想做POST - REDIRECT - GET方法。我正在使用AJAX更新朋友嵌套数据库表。如果我阻止对锚标记的默认操作,则链接将在同一页面中打开并重定向到add_friend.php?from=kpkdhar22&id=2,更新数据库,当按下后退时,搜索结果页面会显示错误消息并且搜索消失。我想保留target="_blank",因为如果在浏览器中没有启用JS,它将在php中执行。
我可以执行除锚标记之外的JS函数,但仍然有一个新选项卡。
我的AJAX代码是这样的:
function addfriend(fid, uid) {
// uid -- person sending friends request
// fid -- person receiving friends request
var id = '#' + uid;
$("id").parent().empty().addClass("friend").removeClass("addfriend").html("Request sent");
var userid = uid;
var friendid = fid;
var status = 'N';
var dataString = 'userid=' + uid + '&friendid=' + fid + '&status=' + status;
$.ajax({
type : "POST",
url : "js/add_friend.php",
data : dataString,
cache : true,
success: function (html) {
var id = '#' + uid; // is this ok as selector
$("id").parent().empty().addClass("friend").removeClass("addfriend").html("Request sent");
},
error : function () {
$("#errors").html('');
$("#errors").html('Failed to send your request.');
}
});
}
当执行函数addfriend(1,2)时,会打开一个新选项卡,在add_friend.php中会显示一条JS警告消息,我立即关闭该选项卡。但AJAX成功函数没有执行,所以我在AJAX调用之前添加了相同的功能,但这也没有用。
请建议我一些过程,或者我错误的步骤。
此致
Poorna。