2016-02-29 88 views
0

我需要將所選複選框的值複選框組中的值發佈到服務器。最終,我並不擔心複選框的名稱,而只是輸入值的列表。extjs 6複選框組getValue

如何發佈這些到服務器?如果我用的getValue()我得到一個內線對象features,使用對象上ext.encode我得到這個

{"feature-3":"3","cfeature-5":"5","feature-7":"7", 
"feature-10":"10","feature-12":"12","feature-13":"13", 
"feature-15":"15","feature-18":"18"} 

我不在乎,如果數據前或後到服務器,但我後面解析需要能夠循環訪問php中的數據,並獲取3..5..7等作爲循環訪問數據時的值。

將checkboxgroup值發送到服務器的最佳方式是什麼?我正在使用這樣的ajax調用:

Ext.Ajax.request({ 
     scope: this, 
     timeout: 1200000, 
     url: './data/saveUsedFeatures.php', 
     method: 'POST', 
     params: { 
features: features 
}, 

我需要了解如何發送數據並在PHP中處理它。

回答

1

首先對你的對象特徵進行編碼以得到json字符串。

Ext.Ajax.request({ 
    scope: this, 
    timeout: 1200000, 
    url: './data/saveUsedFeatures.php', 
    method: 'POST', 
    params: { 
    features: Ext.encode(features) 
} 

,並在服務器端解碼該字符串數組得到:

<?php 
    $arr= json_decode($_REQUEST["features"],true); 
    foreach($arr as $v){ 
     //your logic here 
    } 
?> 

或者

第二個選擇是使用form.Submit()代替Ext.Ajax的。 您將獲得複選框組值的數組。例如,如果您的複選框組在服務器端有屬性name:'checkboxgroup'

<?php 
    foreach($_REQUEST["checkboxgroup"] as $v){ 
     //your logic 
    } 
?>