mySQL クエリを実行する PHP ファイルにコンボボックスの値を渡したいと考えています。MVC アーキテクチャで Extjs 4 を使用しています。これは私のコンボボックスです:
{
xtype: 'combobox',
id: 'cmbMetric',
name: 'sev',
mode: 'queryMode',
//querymode : 'lcoal',
fieldLabel: 'Metric',
store: 'MetricsData',
editable: false,
valign : 'middle',
margin : 15,
displayField:'name_metric',
valueField : 'id_metric'
}
私の店 :
Ext.define('Metrics.store.GuiData', {
extend: 'Ext.data.Store',
model: 'Metrics.model.GuiData',
autoLoad: true,
idProperty: 'id_metric',
proxy : {
type : 'ajax',
actionMethods : 'POST',
api : {
read : 'gui_comp_items.php'
},
reader: {
type: 'json',
successProperty: 'success',
messageProperty: 'message',
root: 'data'
}
}
});
コンボボックスの値を選択すると、この関数がコントローラーによって呼び出されます。
onSelectedValue : function(combo) {
var selected = combo.getValue();
var guiDataStore = this.getGuiDataStore();
guiDataStore.getProxy().url = 'gui_comp_items.php?id_metric=' + selected ;
guiDataStore.load({
params : {
id_metric : selected //The parameter I want to send to the php file
},
callback:this.onGuiDataLoad,
scope: this
});
}
私のphpファイル:
function guiCompItems()
{
$id_metric = $_GET['id_metric'];
$sql = 'select m.id_metric, f.name_filter, gui.type_guicomp from gui_comp gui inner join filter f inner join metric m
on f.id_guicomp = gui.id_guicomp
and f.id_metric = m.id_metric
where m.id_metric ='. mysql_real_escape_string(trim(intval($_GET['id_metric'])));
$result = mysql_query($sql); // result set
while($rec = mysql_fetch_array($result, MYSQL_ASSOC)){
$arr[] = $rec;
};
$data = json_encode($arr); //encode the data in json format
echo '({"success": "true", "message" : "OK","data":' . $data . '})';
}
データは常に「null」です。パラメータがphpファイルに送られていないと思います。どんな助けでも大歓迎です。ありがとう。