Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] Vorauswahl eines Radiobuttons im Registrierungsformular via Link (GET)

Eingetragen von t2k (258)
am 03.03.2014 - 14:12 Uhr in
  • Allgemeines zu Drupal

Hallo!

Man kann sich auf meiner Site momentan mit verschiedenen Rollen (mit Auto-Assign-Role-Modul auswählbar per Radionbutton) registrieren.
Ich würde gern mit einem Link auf die Registrierungsseite verweisen und dabei einen Wert weitergeben, der dann jeweils einen der Radiobuttons aktiviert.

Gibt es da vielleicht eine Lösung über einen GET-Variable?
Also sowas wie "www.meineurl.de?q=user/register&rolle=xyz"?
Oder gibt es da irgendeine andere Lösung für?

Vielen Dank im voraus und Grüße!
t2k

‹ Wie finde ich meine Performance-Bottlenecks? [gelöst] Vorauswahl eines Radiobuttons im Registrierungsformular via Link (GET) ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Sieht nach etwas custom Code aus

Eingetragen von C_Logemann (912)
am 06.03.2014 - 11:01 Uhr

Wenn ein Formular sauber mit der Form API erzeugt wurde – was fast immer zutrifft – lässt sich dieses mit hook_form_alter modifizieren und dabei z.B. auf eine GET-Variable reagieren. Prinzipiell könnte man das vllt. mit rules_forms realisieren, aber das Modul ist meiner Ansicht noch nicht ganz ausgereift. Für einige Anwendungsfälle gibt es fertige Module wie z.B. entityreference_prepopulate für entityreference Felder. Wenn es die nicht gibt bleibt nur etwas custom code am besten in einem Custom Module zu realisieren, dabei kann man sich z.B. vom Modul entityreference_prepopulate inspirieren lassen. Prinzipiell wäre das vllt. eine Funktion, die auch für andere Nutzer von autoassignrole interessieren könnte und vllt. jemand umsetzt, wenn man diese Idee mal als Feature Request in den Issues von autoassignrole auf d.o anregt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auf die Schnelle wird

Eingetragen von t2k (258)
am 08.03.2014 - 01:46 Uhr

Auf die Schnelle wird wahrscheinlich die hook-form-alter-Version die Beste sein, oder?

Wie müsste das denn ungefähr aussehen, wenn ich mit:
www.meineurl.de?q=user/register&rolle=xyz
auf die Register-Seite verweise und dort den Radiobutton für die Rolle "xyz" ausgewählt habe will?

Danke im voraus und Grüße!
t2k

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,wenn Du was auf die

Eingetragen von oteno (775)
am 08.03.2014 - 14:13 Uhr

Hallo,
wenn Du was auf die Schnelle willst, mache es halt mit JavaScript - da spricht in diesem Fall nichts dagegen.Damit kannst sowohl get-Parameter auslesen als auch Radiobutton als checked setzen.
so ungefähr:

(function($){

$(document).ready(function ($) {
setRadiobuttonChecked();
});
function setRadiobuttonChecked() {
var pathname = window.location.pathname;
if (pathname.indexOf('xyz') > -1){
  $("DeinRadioboxSelector").attr('checked',true);
} 
}

}(jQuery));

Gruß
Christian

  • Anmelden oder Registrieren um Kommentare zu schreiben

Auf die Schnelle ...

Eingetragen von C_Logemann (912)
am 08.03.2014 - 14:12 Uhr

... ist Javascript hier auch nicht schneller verbaut wie PHP mit dem Nachteil, daß man nicht sicher gehen kann, ob Scripte beim Browser auch tatsächlich ausgeführt werden (wenn vllt. deaktiviert z.B. durch NoScript).
Hier der saubere Einstieg: https://api.drupal.org/api/drupal/modules%21system%21system.api.php/func...

  • Anmelden oder Registrieren um Kommentare zu schreiben

also sorry, nicht schneller

Eingetragen von oteno (775)
am 08.03.2014 - 14:20 Uhr

also sorry, nicht schneller verbaut? Wenn man das oben in eine JS-Datei reinschreibt, die man vielleicht hat, ist man mit ein bisschen npassung für verschieden Fälle fertig...
Wenn ich mir Deine Lösung oben anschaue geht, das doch eher in Richtung Overkill, und das nur um eine Checkbox oder eine Radiobox anzukreuzen.
Da die Funktionilität nicht betroffen ist und nur ein bisschen mehr Bequemlichkeit gwschafft wird, sind die "Verluste" durch User, die kein JS benutzen wollen verkraftbar.
Gruß
Christian

  • Anmelden oder Registrieren um Kommentare zu schreiben

Custom Module oder custom JS-Datei

Eingetragen von C_Logemann (912)
am 08.03.2014 - 14:27 Uhr
oteno schrieb

also sorry, nicht schneller verbaut? Wenn man das oben in eine JS-Datei reinschreibt, die man vielleicht hat, ist man mit ein bisschen npassung für verschieden Fälle fertig...

Das kann man auch umdrehen: Wenn man schon ein Custom Module hat oder zur Not auch ein Custom Template, dann ist der kleine Hook-Aufruf da auch ganz schnell eingebaut. Wenn man die Form ID rausgefunden hat und das Form-Element lokalisiert hat, dann man da ganz leicht den Default-Wert auf den Wert setzen, den man per Get bekommt. Unterm Strich auch nicht mehr Code als die Javascript-Lösung, aber kompatibler.

  • Anmelden oder Registrieren um Kommentare zu schreiben

wenn es so easy ist, da

Eingetragen von oteno (775)
am 08.03.2014 - 14:51 Uhr

wenn es so easy ist, da könntest Du doch t2k ein schnelle Lösung präsentieren...
Oben lese ich nur "rules_forms" und "entityreference_prepopulate" und jetzt auch noch Custom Module (fürs Ankreuzen einer Checkbox...)
Gruß
Christian

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke sehr für den

Eingetragen von t2k (258)
am 08.03.2014 - 18:35 Uhr

Danke sehr für den Lösungsansatz!!!

Ich würd gern auch sehen wie die andere schnelle Lösung aussieht.
Dann könnte ich das abwägen.

Vielen Dank und Grüße!
t2k

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hat Funktioniert!Allerdings

Eingetragen von t2k (258)
am 17.04.2014 - 00:54 Uhr

Hat Funktioniert!

Allerdings hat der jquery-Code bei mir nicht funktioniert.

Wen's interessiert, ich hab es so gemacht:

function getUrlVar(key){
        var result = new RegExp(key + "=([^&]*)", "i").exec(window.location.search);
        return result && unescape(result[1]) || "";
}

  $(document).ready(function() {
        $typ = getUrlVar("typ");
          if ( $typ == "meinegetvariable") {
          $('input:radio[id="meine-radio-button-id"]').attr('checked', 'checked');
    }
        else {
            $('input:radio').removeAttr('checked');
    }


}); 

Die jquery-GET-Funktion hab ich übrigens hierher:
https://gist.github.com/varemenos/2531765

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 2 Tagen
  • Hey danke
    vor 2 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 3 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 3 Wochen 5 Tagen
  • In der entsprechenden View
    vor 3 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 5 Tagen
  • gelöst
    vor 6 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20457

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 28 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