私は頭を少し超えていることに取り組んでおり、これに関連するライブラリが見つからないようです。私が取り組んでいる Web アプリケーションでは、n 人のリストがあり、人の名前をクリックすると、その人が書いた n 個の記事のリストが生成されます。JavaScript と JSON を使用してこれを達成しようとしています。
これは私のJSONデータがどのように構造化されるかです:
var people = {
'clients': [
{
'fname': 'joe',
'lname': 'smith',
'AFD': [
{
'articleName': 'AFDArticle1byjoe'
},
{
'articleName': 'AFDArticle2byjoe'
},
{
'articleName': 'AFDArticle3byjoe'
},
{
'articleName': 'AFDArticle4byjoe'
},
{
'articleName': 'AFDArticle5byjoe'
}
]
},
{
'fname': 'jim',
'lname': 'Hoff',
'AFD': [
{
'articleName': 'AFDArticle12byjim'
}
]
},
{
'fname': 'rick',
'lname': 'Robinson',
'AFD': [
{
'articleName': 'AFDArticle5byrick'
}
]
},
{
'fname': 'sarah',
'lname': 'Ross',
'AFD': [
{
'articleName': 'AFDArticle20bysarah'
}
]
},
{
'fname': 'jack',
'lname': 'jones',
'AFD': [
{
'articleName': 'AFDArticle9byjack'
}
]
}
]
};
誰もが名、姓、および n 個の AFD 記事のリストを持っています。
このコードは、上記の JSON の例から、HTML テーブル内の n 人の数を適切に一覧表示します。
<table border="1">
<script>
for (var i=0;i<people.clients.length;i++)
{
$("#tabX").append("<tr><td>"+people.clients[i].fname+"</td></tr>");
}
</script>
</table>
すると、「joe jim rick sarah jack」のように、表のファースト ネームの素敵な出力が得られます。
そのため、「joe」をクリックすると、Joe の記事のデータ テーブルが生成されます。私はすでにこれを次のように達成できます:
<table border="1">
<script>
for (var i=0;i<people.clients.length;i++)
{
$("#tabX").append("<tr><td>"+people.clients[ selectedClient ].AFD[i].articleName+"</td></tr>");
}
</script>
</table>
「selectedClient」が現在選択されているクライアントである場合、AFD 記事は次のように生成されます: AFD Article 1 by joe, ... , AFD Article 4 by joe.
では最後に!これを乗り越えるのに本当に役立つ質問がいくつかあります。誰かの名前をクリックした後に selectedClient の値を変更するにはどうすればよいですか? これは、以下のような関数を実行することで可能でしょうか?
$("#tabX").append("<tr><td><a href="javascript:selectName();">" +people.clients[i].fname+ "</a></td></tr>");