データベースによって入力されたグリッドがあります。列の 1 つは、別のテーブルの 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
問題は、単一の列ではなく連結であるという事実にあることは知っていますが、それを回避する方法があると確信しています...私はそれを知りません。