ドロップダウンは、学期、コース、質問の3つです。質問のドロップダウンには、常に質問の完全なリストがあります。他の2つ:学期、コース; それらは、お互いが何を選択したかによって異なります。
セメスターとコースのオプションは次のとおりです。すべてのセメスター、セメスターA、セメスターB、...、セメスターN。同じことがコースにも当てはまります:すべてのコース、コースA、コースB、...、コースN。
したがって、現在私が持っているのは、3つのドロップダウンのいずれかが変更されるたびに、ajax呼び出しがあり、選択されたパラメーターを使用してグラフデータを検索することです。これは、たとえば、コースBのすべての学期のX質問、またはすべてのコースの学期BのX質問のグラフを見つけることができることを意味します。または最後に、コースBの学期AのX質問。
今、私はこれを完全に機能させることができました。ただし、問題は、コースと学期に、その教授のコースと学期の完全なリストが表示されることです。これは、存在しない組み合わせを選択できることを意味します。したがって、たとえば、コースBの学期W中にXの質問を選択できます。そして多分セメスターWの間に彼は1つのコースを教えました、そしてコースBはそのコースではありません。
そのときの私の目標は、コースと学期のドロップダウンを相互に依存させることでした。サーバー側では、これらの条件に対してクエリなどを設定し、Object.courseがリストに含まれるべきコースの配列であり、Object.semesterが必要なコースの配列であるオブジェクトを常に送信します。リストに載る:
if Course and Semester == ALL:
do: Object.course = all courses,
Object.semester = all semesters.
if Course == ALL:
do: Object.semester = all semesters,
Object.course = all courses given during selected semester.
if Semester == ALL:
do: Object.course = all courses,
Object.semester = all semesters when the selected course was given.
else
do: Object.course = Two options: All, Selected Course,
Object.semester = Two options: All, Selected Semester.
すべての場合において、配列には最初のオプションとしてAllが含まれ、次に1つの追加オプションから完全なリストまでの範囲のいくつかのオプションが含まれます。
これが私がこれまでに持っているもののjsfiddleです。 http://jsfiddle.net/gFRAZ/1/ 私が抱えている問題は、選択オプションを削除して再度追加すると、クレイジーになり、間違ったアイテムを削除したり、すべてを削除したりすることです。そして、それは私が選択されたオプションとして選択されたものとして設定したものを保持しません。
それらを再度追加すると、Selectedプロパティが無視されると思います。
SOやインターネットで検索してみましたが、何時間も遊んでも問題が解決しませんでした。誰かが私を助けてくれることを願っています!よろしくお願いします。
サンプルデータオブジェクト:
var dropdown = new Object({course:['all', 'Course A', 'Course B'], semester:['all', 'Semester A', 'Semester B']});