2016-01-08 33 views
1

如何將兩個值(篩選器& $ user_id)傳遞給Ajax?使用下拉將兩個變量從php傳遞給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的阿賈克斯問題。 預先感謝您。

+0

給出一個ID選擇控制並嘗試通過JA追加

回答

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>"; 
+0

問題(var userid = $(this).attr('data-userid');)他返回** undefined ** –

+0

@AnnaZina:檢查更新的答案 – urfusion

+0

@AnnaZina:它工作嗎? – urfusion

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); 
    } 
}); 
}; 
+0

(var userid = $(this).attr('data-userid');)的問題他返回** undefined **。 –

+0

我使用alert('userid:'+ userid); het返回userid:** undefined **。 –

+0

@urfusion在他的回答中解決了這個問題:) –