[英]extjs 4 : filling combobox using MYSQL db via PHP script
您好,我正在嘗試使用來自MYSQL數據庫的數據填充組合框。 在MVC體系結構中使用Extjs 4。
這是我視圖中的組合框配置:
...
{
xtype: 'combobox',
id: 'cmbMetric',
name: 'metr',
mode: 'queryMode',
querymode : 'lcoal',
fieldLabel: 'Metric',
store: 'MetricsData',
editable: false,
valign : 'middle',
margin : 15
}
....
我的商店:
Ext.define('Metrics.store.MetricsData', {
extend: 'Ext.data.Store',
model: 'Metrics.model.MetricsData',
autoLoad: true,
proxy : {
type : 'ajax',
actionMethods : 'POST',
api : {
read : 'testmysql.php'
},
reader: {
type: 'json',
successProperty: 'success',
messageProperty: 'message',
root: 'data'
}
}
});
我的模特:
Ext.define('Metrics.model.MetricsData', {
extend: 'Ext.data.Model',
fields: [{name : 'name_metric'}]
});
最后是我的PHP腳本:
<?php
//database parameters
$user='user';
$pw='';
$db='mydb';
$table='metric';
//make database connection
$connection = mysql_connect("localhost", $user, $pw) or
die("Could not connect: " . mysql_error());
mysql_select_db($db) or die("Could not select database");
metricsName();
function metricsName()
{
$sql = 'SELECT name_metric FROM 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
$data
。
$data = json_encode($arr); //encode the data in json format
echo $data;
同樣,您返回的數據應如下所示:
{
data: [{
name_metric: 'record1'
}, {
name_metric: 'record2'
}],
total: 2,
success: true
}
兩件事情:
{\n “成功”:是的,\n “ message”:“確定”,\n “數據”:[\n {\n “ id”:1\n “ name_metric”:“ Value1”\n },\n {\n “ id”:2\n “ name_metric”:“ Value2”\n }\n ]\n }這意味着您的函數應該只返回數據數組,而不是編碼數組,而php應該輸出如下內容:
回聲json_encode(array(\n '成功'=>是的,\n 'message'=>“確定”,\n '數據'=> metricsName()\n ));
{\n xtype:'combobox',\n 商店:Ext.create(“ Metrics.store.MetricsData”),\n displayField:'name_metric',\n valueField:'id'\n }\n\n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.