0

Dynamische Mehrfachauswahl in mehreren Tabellen

Liebe Community,

ich arbeite gerade an einer Lehrplanungsdatenbank und scheitere :( Vielleicht könnt Ihr helfen?

In der Tabelle "Module" werden alle Module aufgelistet. Zu jedem Modul gibt es eine Mehrfachauswahl, welche Zeiten erlaubt sind. Z.B. "Mo 8", "Mo 10", "Di 10" Uhr.

Nun gibt es eine weitere Tabelle "Veranstaltung". In dieser Tabelle soll es möglich sein, für eine Veranstaltung, die zu einem bestimmten Modul gehört, eine Zeit festzulegen. Möglichst soll dazu eine Einfachauswahl angezeigt werden, die aus der Tabelle Module kommt und nur die Zeiten enthält, die im jeweiligen Modul vorher "freigegeben/angegeben" wurden.

Hat jemand eine Idee?

Herzlichen Gruß

NiBa

9 Antworten

null
    • mirko3
    • vor 7 Tagen
    • Gemeldet - anzeigen

    Hallo Nils. Das erscheint machbar. Sind denn die Tabellen verknüpft? Ist das Mehrfachauswahlfeld in der Tabelle Module ein normales Mehrfachauswahlfeld oder ein dynamisches? Wie wird das Modul in der Tabelle Veranstaltung ausgewählt, wenn es nicht verknüpft ist?

    Für die Tabelle Veranstaltung bietet sich dann m.E. nur ein dynamisches Auswahlfeld an, wenn es Referenzen haben soll auf das mfa der Tabelle Module. Vielleicht klärst Du noch meine obigen Fragen und dann können wir basteln. Mirko

      • Dr_Nils_Bahlo
      • vor 7 Tagen
      • Gemeldet - anzeigen

       Hallo Mirko, erstmal tausend Dank für den Versuch. Schaun wir mal. Also:

      In der Tabelle "Modul" habe ich ein Textfeld mit dem Namen des Moduls und eine Mehrfachauswahl mit Zeitslots, die für das Modul offen sind. Sagen wir mal einfach, dass das Modul "Grundlagenmodul Sprache" heißt. Für dieses Modul dürfen die Zeiten Mo 10 Uhr, Mo 12 Uhr und Mo 14 Uhr. 

      In der Tabelle "Veranstaltung" wird eine Beziehung von "Modul" (N:1) hergestellt. Ich habe dann in dieser Tabelle eine dynamische Mehrfachauswahl angelegt. 

      Jetzt mein Problem: Aus den drei Zeitslots darf nur einer angewählt werden und für die Veranstaltung gespeichert werden. Also, ich gebe eine Veranstaltung "Grammatik" in der Tabelle "Veranstaltung" ein. Wenn ich das Modul "Grundlagenmodul Sprache" wähle, soll eine Einfachauswahl unter "Zeitslots" zu sehen sein, die die Daten aus der Modultabelle beinhaltet.

      Bei mir kommt leider nur eine Auswahl raus, die einen String (kommasepariert) mit allen Zeiten aus "Modul" enthält. Ich habe versucht, mit split zu arbeiten, um den String aufzuteilen und wieder mehreren Einträgen in dem Dropdownfeld einzufügen...läuft aber nicht. Ich stehe auf dem Schlauch. Vielleicht denke ich auch viel zu umständlich.

      Lieben Gruß

      Nils

      • Dr_Nils_Bahlo
      • vor 7 Tagen
      • Gemeldet - anzeigen

       ich muss die Frage nochmal genauer beantworten. Die Mehrfachauswahl in Module ist nicht dynamisch. Da wird für jedes Modul aus der gesamten Zeitskala ausgesucht, was möglich ist. Die Auswahl in Veranstaltung ist dynamisch.

    • mirko3
    • vor 7 Tagen
    • Gemeldet - anzeigen

    Das dachte ich mir schon mit dem multi. Ich habe es trotzdem erstmal als dmulti angelegt. Ich hoffe, die Scripte sind nicht zu kompliziert. Die dynamischen Felder sind per JSON gefüllt. Schau erstmal, ob es so passt. Wenn nicht, dann baue ich es noch auf ein einfaches multi in Module um. Aber ich arbeite noch nebenher, deshalb kanns noch etwas dauern. 

    • Dr_Nils_Bahlo
    • vor 6 Tagen
    • Gemeldet - anzeigen

    Lieber Mirko, ich weiß nicht, was ich sagen soll. Wie geil! Das funktioniert perfekt. Auf diese Lösung wäre ich nie gekommen und jetzt fühle ich mich schlecht ;) Aber das ist okay...TAUSEND DANK!!!

    Herzliche Grüße

    Nils

    • Dr_Nils_Bahlo
    • vor 2 Tagen
    • Gemeldet - anzeigen

    Lieber   , vielleicht hast Du noch eine kleine Idee für mich, ich wäre sehr dankbar.

    In Deine Tabelle "Veranstaltungen" habe ich ein Feld für Dozentennamen eingebaut. Jede/r Dozent/in muss insgesamt 6 Seminare geben und wählt dementsprechend 6 Hauptzeiten aus. Die bereits gewählten Zeiten sollen während der Wahl des nächstens Seminars in einem Feld schon angezeigt werden, so dass man möglichst im Auge hat, welche Zeiten man schon "verballert" hat.

    Der Knüller wäre natürlich, wenn die Time-Liste dann diese Zeiten nicht mehr enthält, aber das wäre wohl zu viel. 

    Hoffentlich hast Du eine Idee.

    Herzliche Grüße

    Nils

      • mirko3
      • gestern
      • Gemeldet - anzeigen

       Hallo Nils. Wird es nicht so sein, dass Du die Module in gewissen Abständen wieder verwenden willst. Also, vielleicht finden in Abständen die gleichen Module statt? Dann wird das ganze so einfach nicht funktionieren, wenn die Auswahlfelder nicht gesagt bekommen, auf welchen zeitlichen Bezugsrahmen sie sich beziehen. Für zwei Wochen habe ich Beispiele angelegt, denn wenn eine neue Veranstaltung stattfindet, die auf ein bestehendes Modul zurückgreift, dann müssen auch die Termine wieder frei verfügbar sein. Ich weiß zu wenig über Deine DB-Gestaltung um darüber etwas zu sagen. In der beigelegten DB funktioniert es so, dass die Veranstaltungen, die auf Module zurückgreifen innerhalb einer Woche stattfinden. Dafür gibt es ein Datumfeld in Veranstaltung und ein Funktionfeld für die Jahreswoche. Die Dozenten habe ich in eine Extratabelle gelegt, was zum Vorteil hat, dass dort auch die Seminare die sie gehalten haben zu sehen sind. Mirko

    • Dr_Nils_Bahlo
    • gestern
    • Gemeldet - anzeigen

    Lieber Mirko, vielen Dank, ich sehe es mir nachher an. Letztendlich ist es so, dass wir immer für ein Semester planen. Dann beginnt der Auswahlprozess erneut. Wir bauen dann die Datenbank bzw. die Inhalte auch komplett neu auf. Ich melde mich später nochmal.

    Lieben Gruß

    Nils

      • Dr_Nils_Bahlo
      • vor 12 Stunden
      • Gemeldet - anzeigen

      Lieber Mirko, ich habs mir angesehen. Ich habe mich offenbar ein wenig falsch ausgedrückt.

      In Deiner Tabelle "Veranstaltungen" habe ich einfach ein weiteres Textfeld "DozentIn". Dieses wird von den einzelnen Dozierenden mit ihrem Namen gefüllt. Nun gibt es folgende Vorgabe. Jeder Dozent muss einen zeitlichen Hauptwunsch pro Seminar angeben. Dafür brauchte ich Dein Script, denn dieser Zeitwunsch darf in bestimmten Modulen nicht mit der Vorlesung kollidieren. Diese Zeit wird den Dozierenden also nicht angegeben, dank Deines Scripts. Das funktioniert super. Nun müssen die Dozierenden aber 6-7 Seminare geben und wählen dann pro Seminar immer eine Zeit aus. Ich würde ihnen gerne ein Feld unter der Zeitauswahl anbieten, welches alles bereits von ihnen gewählten Zeiten auflistet. Damit Sie sehen, was sie nicht mehr wählen sollten. Es müsste also so laufen, dass die Tabelle Veranstaltungen in Abhängigkeit des aktuellen Dozierendennamens in einer Schleife die Tabelle nach dem Dozierenden durchsucht und seine bereits gewählten Zeiten listet. Ich probiere schon ewig mit einem Funktionsfeld, select und where rum, greife aber immer ins Leere. Hast Du eventuell eine Idee?

      LG Nils

Content aside

  • Status Answered
  • vor 12 StundenZuletzt aktiv
  • 9Antworten
  • 59Ansichten
  • 2 Folge bereits