从文本链接获取URL参数,并将其发送到AJAX调用
Get URL parameters from text link and post to AJAX call
我目前正在开发一些jQuery,它将允许用户从文本链接进行AJAX调用。这是没有问题的,但文本链接有参数,我需要发送给AJAX请求,以使其正确执行。
我的文本链接看起来像这样:
<a href="?affiliate=one&voteType=two">Click here</a>
这是我的jQuery:
function getUrlParam(name)
{
name = name.replace(/['[]/,"'''[").replace(/[']]/,"''']");
var regexS = "[''?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
/* Let's create a function that will allow us to vote on the hosts */
function hostVote() {
/* These variables are used to determine the button clicked */
var affiliate = getUrlParam('affiliate');
var voteType = getUrlParam('voteType');
$.ajax({
cache: false,
type: "POST",
url: "/php/hostvote.php",
data: "affilate=" + affiliate + "&voteType=" + voteType +"",
success: voteSubmitted
});
function voteSubmitted() {
alert('Thanks for voting');
$(this).addClass('yes');
}
return false;
};
$("a.vote").click(hostVote);
这个代码的问题是我不能提交链接,在函数执行之前把任何参数放在url中,导致空的附属和voteType变量。
有人能帮忙吗?
更好的方法是将所需的数据存储在链接的data-*
属性中。这将使检索相应数据变得容易得多。这里有一个简单的例子来说明它是如何工作的。
<a href="#" data-affiliate="one" data-voteType="two">Click here</a>
$("a.vote").click(function(e){
var affiliate = $(this).data('affiliate');
var voteType = $(this).data('voteType');
// do your ajax call here
e.preventDefault();
});
代替-
var results = regex.exec( window.location.href );
could you do -
var results = regex.exec($("a.vote").attr('href'));
和解析变量直接从您的链接?
相关文章:
- 阻止在select2单击时调用ajax
- 调用Ajax并返回响应
- Ajax:只在元素存在的情况下调用Ajax
- PHP,MySQL,AJAX-调用AJAX结果后,Bootstrap CSS样式不会显示
- 调用Ajax内部的函数
- 无法获取属性'的值;拆分'在IE8中调用ajax之后
- 我们如何在Firefox中调用AJAX
- Rails:通过调用Ajax重定向
- Cookie 在 Spotify (Javascript) 中调用 ajax 后未保存
- 通过调用 Ajax 来设置 struts bean 值
- 无法从服务器中的 php 调用 Ajax 函数
- 如何在附加表行时调用 ajax
- 在facebook用户发送邀请请求后调用ajax调用
- 定期调用Ajax
- 调用Ajax生成的表单的值
- 无法调用ajax函数
- 在调用AJAX之后显示ng控制器的内容;作为“;作用
- CSS,Java脚本在php中调用ajax后无法正常工作
- 成功调用AJAX后,Toast Growl不会出现
- 如何在调用AJAX时记录或捕获信息和错误