Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Kombination von Ajax und Javascript

Eingetragen von Micha1111 (290)
am 15.06.2013 - 12:01 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Mit dem Modul improved_multi_select kann man eine normale Auswahlliste (Select-Formularfeld) dahingehend verändern, dass links aus der Werteliste einzelne Werte ausgewählt werden können, die dann in eine neue Werteliste nach rechts übernommen werden. Die Werte der neuen Liste (also die ausgewählten Werte) können dann zusätzlich sortiert werden.

Das ganze beruht auf Javascript und funktioniert für sich alleine sehr gut.

Nun habe ich mit einem weiteren eigenen Modul diese Auswahlliste von einer anderen Auswahlliste abhängig gemacht (Ajax-wrapper). Auch das funktioniert für sich alleine einwandfrei.

Nur die Kombination beider Module führt dazu, dass die Sortierfunktionen (move_up und move_down - siehe Zeilen 209 und 221 in der Datei improved_multi_select.js) zum verschieben der Werte in der rechten Liste immer zweimal ausgeführt werden. Die Werte werden also immer um zwei Positionen, statt um eine Position verschoben.

Ich vermute, dass der Aufruf der Ajax-Funktion bewirkt, dass die JS-Funktionen erneut zum zweiten Mal initialisiert werden.
Ich habe keine Ahnung, wie man das unterbinden kann.
Auf drupal.org konnte mir bisher keiner helfen.
Vielleicht hat hier jemand schon dieses Problem gehabt und beheben können.

‹ [gelöst] mitglieder einer gruppe in einem drop-down-feld? User ID mit hook_user_insert ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Schade, bisher leider keine

Eingetragen von Micha1111 (290)
am 20.06.2013 - 11:25 Uhr

Schade, bisher leider keine Reaktion.

Vielleicht auch nicht gut genug erklärt ?

Ich habe ein paar Screenshots und die js-Datei angehängt, damit das Problem klarer wird.

AnhangGröße
improved_multi_select1.JPG 63.65 KB
improved_multi_select2.JPG 56.32 KB
improved_multi_select3.JPG 64.78 KB
improved_multi_select4.JPG 37.95 KB
improved_multi_select5.JPG 39.22 KB
improved_multi_select_js.pdf 56.75 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Micha, wie gibst du die

Eingetragen von Jenna (1883)
am 20.06.2013 - 11:47 Uhr

Hallo Micha,

wie gibst du die Box auf der Site aus, mit Views?

Ich habe ein ähnliches Problem gehabt und zwar den jQuery Schieberegler ( Größe von bis) eingebaut in die Detailsuche, dieser funktionierte zwar, aber bei der Auswahl weiterer Suchkriterien per Checkbox erzeugte sich der Regler jedesmal neu, also 3 Checkfelder = 3 Schieberegler.

Nach langem Suchen habe ich dann gesehen das ich in der View für Detailsuche: "AJAX verwenden: Ja" aktiviert hatte, auf nein gesetzt und jetzt funktioniert es.

Irgendwo kommt sich js mit Ajax in die Quere, schau doch mal ob du irgendwo ein Ajax deaktivieren kannst, bzw. eine View anlegen und mit Ajax Nein testen, also das improved multi select per Views ausgeben.

Wäre jetzt nur ein Versuch, hast du mal unter Berichte/ Aktuelle Protokollnachrichten gekuckt ob dir genauere Fehlermeldungen angezeigt werden?

Viele Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also Views ist überhaupt

Eingetragen von Micha1111 (290)
am 20.06.2013 - 12:29 Uhr

Also Views ist überhaupt nicht beteiligt.
Das Feld MeldeSpieler (ein Entity Reference Feld) wird durch eine Select-Abfrage in meinem Modul befüllt.
Fehlermeldungen werden auch nicht angezeigt.
Ohne AJAX in meinem eigenen Modul würde, die Abhängigkeit des Feldes MeldeSpieler vom Feld MeldeMannschaft auch nicht funktionieren.
Es muss AJAX und JS parallel gehen.
Es muss m.E. nur verhindert werden, dass nach dem AJAX-Aufruf auch JS nochmals aufgerufen wird.
Vielleicht geht auch irgendwie einzustellen, dass die click()-Funktion auf jeden Fall nur 1x je Klick durchlaufen wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • What is Betaflight firmware
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
Weiter

Neue Kommentare

  • Danke ich werde mir die
    vor 2 Tagen 4 Stunden
  • anyone has a working Betaflight mirror right now?
    vor 4 Tagen 17 Stunden
  • Vielen Dank für Ihren
    vor 4 Tagen 22 Stunden
  • Composer ist sehr ratsam
    vor 6 Tagen 21 Stunden
  • Vielen Dank für den
    vor 1 Woche 2 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 1 Woche 2 Tagen
  • Gut gemacht
    vor 1 Woche 2 Tagen
  • Layout Builder etc. z.B. für Landing Pages
    vor 1 Woche 2 Tagen
  • Links
    vor 1 Woche 5 Tagen
  • Moin,wow, sehr gutes
    vor 1 Woche 6 Tagen

Statistik

Beiträge im Forum: 250316
Registrierte User: 20562

Neue User:

  • rofilm
  • Cruzorerm
  • Plandkeews

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 27 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association