如何将两个值(filter& $ user_id)传递给Ajax?
PHP:
$user_id = 3;
echo "<select name=\"filter\" data-userid=\"".$user_id."\"
onchange=\"getPoints(this.value)\">
<option value=\"one\">One</option>
<option value=\"two\">Two</option>
</select>";
AJAX :
function getPoints(filter)
{
var userid = $(this).attr('data-userid');
$.ajax({
type: "GET",
url: 'http://website.com?user_id='+userid,
data: '&action='+filter,
success: function(result){
$("#Target").html(result);
}
});
};
我想得到这个网址:
http://website.com?user_id=3&action=one
我遇到了将$ user_id传递给Ajax的问题。 提前谢谢。
答案 0 :(得分:2)
您的代码应该像
function getPoints(filter)
{
var userid = $(this).attr('data-userid');
$.ajax({
type: "GET",
url: 'http://website.com',
data: {action: filter, user_id: user_id},
success: function (result) {
$("#Target").html(result);
}
});
}
或者,如果我谈论你的方式,那么它应该是
function getPoints(filter)
{
var userid = $(this).attr('data-userid');
$.ajax({
type: "GET",
url: 'http://website.com?user_id='+userid+'&action='+filter,
success: function (result) {
$("#Target").html(result);
}
});
}
使用data: {action: filter, user_id: user_id}
总是更好,因为它会被视为对象本身。
修改强> JS
function getPoints(filter)
{
var user_id = document.getElementById('test_class').getAttribute('data-userid');
console.log(user_id);
$.ajax({
type: "GET",
url: 'http://website.com',
data: {action: filter, user_id: user_id},
success: function (result) {
$("#Target").html(result);
}
});
}
PHP
$user_id = 3;
echo "<select id='test_class' name=\"filter\" data-userid=\"".$user_id."\"
onchange=\"getPoints(this.value)\">
<option value=\"one\">One</option>
<option value=\"two\">Two</option>
</select>";
答案 1 :(得分:0)
尝试这样的事情
function getPoints(filter){
var userid = $(this).data('userid');
$.ajax({
type: "GET",
url: 'http://website.com?user_id='+userid,
data: { action:filter, user_id: userid},
success: function(result){
$("#Target").html(result);
}
});
};