2016-11-11 141 views
0

我有一個儀表板,數據庫中填充了數據。Onchange有多個選擇字段

首先,我有選擇的過濾器那樣工作

選擇從Y X,其中fieldX =(從選擇重點放在這裏)

,然後將數據從儀表板更改。

目前,我正在使用onchange屬性。在選擇被激發後,儀表板改變而沒有提交按鈕。

但現在,我想把更多的選擇(如4,就像一個表格)。問題在於,在激活選擇後,儀表板發生變化。不只是1選擇(預期效果)的問題,但我想選擇更多的選擇字段來對我的儀表盤添加更多過濾像

選擇從Y X,其中fieldX =(從selectX的關鍵放在這裏)和fieldZ =(從selectZ鑰匙放在這裏)和[...]

(請注意,用戶選擇的過濾器。一些選擇字段可以選擇與否)

我的問題如果有方法,使用onchange(或不),來做到這一點。也許使用提交按鈕或什麼的?

目前我使用這樣的事情:

//PEGANDO O SELECT REGIONAL PARA O GRÁFICO 
$('select#SELECTID').on('change', function (e) { 
    var SELECTID = this.value; 
    //url 
    control('ocupantes-aptos/dashboard?SELECTID =' + SELECTID , 'content'); 
}); 
+1

搜索PHP阿賈克斯 - 例如https://www.google.com/search?q=php%20ajax%20more% 20%20%%20select – mplungjan

回答

0

同樣的事情。您將事件綁定到所有涉及的SELECT。如果你有一個ID(#選擇器),你不需要指定SELECT。在回調,你現在必須明確地檢索每個控件的值:

$('#selectId1, #selectId2, #selectId3').on('change', function() { 
    var s1 = $('#selectId1').val(); 
    var s2 = $('#selectId2').val(); 
    var s3 = $('#selectId3').val(); 
    //url 
    control('ocupantes-aptos/dashboard?SELECTID =' + s1 , 'content'); 
}); 

或者你可以給一個特定的類所有這些控件:

$('select.grupo1').on('change', ... 

<select id="selectId1" class="grupo1"> 
    ... 

注意: jQuery還具有高效地對一個表單或一組控件進行序列化的功能,因此您不需要指定所有這些val()

在這個例子中,我們發送所有的「grupo1的價值觀,只要其中的任何變化。該HTML看起來像一個系列的元素:

<select name="s[1]" class="grupo1">...</select> 
<select name="s[2]" class="grupo1">...</select> 

或者更短,使用 「#grupo2選擇」,而不是 「select.grupo1」:

<div id="grupo2"> 
<select name="s[1]">...</select> 
<select name="s[2]">...</select> 

jQuery的(這裏採用的「選擇。grupo1" 的選擇)

var sels = $('select.grupo1'); 
sels.on('change', function() { 
    // We want to use the control() function, so 
    // we need to build the URL. We may have problems with too many selects, 
    // and in that case we will need to modify control(). 
    control('ocupantes-aptos/dashboard?' + sels.serialize(), 'content'); 
}); 

的PHP將得到:

$selects = $_GET['s']; 
foreach ($selects as $num => $val) { 
    // Here for example num=1, and val = the selected value of s[1]. 
} 
+0

Man,awesome answer。你能幫我指出兩個或兩個以上的控制參數嗎? –

+0

是的,但我需要control()的代碼,或者我們可以使用基本的序列化。 ? – LSerni

+0

序列化,請嘿嘿 –