JqG​​rid编辑表单在下拉列表中不显示正确的项目

时间:2012-04-26 17:43:13

标签: php mysql select jqgrid edit

我有一个由数据库填充的网格。其中一列是另一个表中的2列的连续。在这种情况下,它是团队的位置和名称。但是,当我点击编辑并填充编辑表单时,它总是选择下拉列表中的第一个团队,而不是数据库中的实际团队。

以下是一些相关代码:

jQuery("#listPlayer").jqGrid({
    url:'../controller/playerGrid.php',
    datatype: "json",
    colNames:['ID','First Name','Last Name', 'Team'],
    colModel:[
            {name:'id',         index:'id',         width:20,   editable:false, hidden:true},
            {name:'first_name', index:'first_name', width:80,   editable:true, editrules: {required: true}},
            {name:'last_name',  index:'last_name',  width:80,   editable:true, editrules: {required: true}},
            {name:'idTeam',     index:'idTeam',     width:50,   editable:true, editrules: {required: true}, edittype: 'select', editoptions: { dataUrl: "../controller/listTable.php?query=team" } }
    ],
    rowNum:50,
    rowTotal: 2000,
    rowList : [20,30,50],
    mtype: "POST",
    rownumbers: true,
    rownumWidth: 40,
    gridview: true,
    pager: '#pagerPlayer',
    sortname: 'last_name',
    viewrecords: true,
    sortorder: "asc",
    caption: "Player Manager",
    editurl: "../controller/playerEditGrid.php"

这就是listTable.php中的SQL查询:

SELECT t.id, CONCAT(t.location, ' ', t.name,' (', l.abbr, ')' ) as idTeam FROM team t, league l WHERE t.idLeague = l.id ORDER BY t.location

我知道问题在于它是一个串联而不是一个列,但我确信有一种解决方法......我只是不知道它。

1 个答案:

答案 0 :(得分:1)

我没有以这种方式使用它,但jqgrid帮助的以下部分应适用于您的情况:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules#select

dataurl的返回应该已经是一个有效的HTML select元素,如:

<select> 
<option value='1'>One</option> 
<option value='2'>Two</option> 
...
</select>

参考 3。在上面的url中设置editoptions dataUrl参数

希望这有帮助!