Re: Mehrfachauswahl bei Relation? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 15.September.2004, 10:58.
    Re: Mehrfachauswahl bei Relation?

      Das klappt mit dem Relationsfeld nicht, das musst Du selbst programmieren...


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Markus (0 Beiträge) am Dienstag, 14.September.2004, 13:49.
    Mehrfachauswahl bei Relation?

      Hallo bp'ler!

      In einer db "Produktbeschreibung" soll man in einem Feld auswählen können welche Mitarbeiter zuständig sind. Das Feld ist mit der db "Mitarbeiter" verknüpft. So weit-so gut.
      Für ein Produkt sind aber meist mehrere Mitarbeiter zuständig. Bei einem Neueintrag in "Produktbeschreibung" soll man eine Mehrfachauswahl treffen können. Mit strg geht's nicht.
      Wer weiß Rat ? Blick's einfach nicht!

      Vielen Dank
      Markus

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 15.September.2004, 10:58.
    Re: Mehrfachauswahl bei Relation?

      Das klappt mit dem Relationsfeld nicht, das musst Du selbst programmieren...

     Antworten

    Beitrag von Markus (0 Beiträge) am Mittwoch, 15.September.2004, 12:33.
    Re: Mehrfachauswahl bei Relation?

      Wie könnte denn sowas ausschauen? Ist das für "BP-Dummies" zu schaffen?

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 15.September.2004, 21:04.
    Re: Mehrfachauswahl bei Relation?

      Hmm,

      HTML gibt das schon her:

      <SELECT multiple size=5 name=auswahl>
      <option>erste</option>
      <option>zweite</option>
      <option>dritte</option>
      </select>
      (dann kann man mit shift oder strg mehrere auswählen)
      

      Nur dann kommt das z.B. bei über get so an:
      ?auswahl=erste&auswahl=zweite
      was sehr unschön gelöst ist wie ich finde.
      Also über die normalen Variablen kommt man da nicht dran.
      Wenn dann musst du dir das selber da raus fischen.
      Kommt man aus nem Template noch an den rohen query? Weiss ich jetzt garnicht...

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 15.September.2004, 21:39.
    Re: Mehrfachauswahl bei Relation?

      also ich hol mir das aus dem %_put bzw. %_get oder auch %_loop, dort steht es schön unter dem keynamen des Feldvariablennamens, die Werte durch new-lines getrennt.
      Man kann das dann aufdröseln (das new-line ist ja als Trenner vorhanden) und das dann weiter verarbeiten. Wenn mans hart auf nen Feldnamen proggt ist es noch einfacher als wenn es universell sein soll.

      Mit Feldtyp Relation arbeite ich generell nicht - das ist m.E. zu unflexibel, die Relationen bau ich mir lieber selber mit nem verschachtelten get oder in ein foreach auf ne Liste der zugehörigen Werte.
      Man müsste zu der Sache mehr wissen, damit man was dazu sagen bzw. Denkanstöße zum proggen geben kann.
      Vielleicht gibst du ja mal etwas mehr Infos, evtl. auch etwas Quelltext.

      Vorab vielleicht so:
      Ein Optionfeld dynamisch mit den Mitarbeiternamen aus der DB Mitarbeiter bauen, das als multiple ausführen.
      In der DB Produkte dann ein Optionfeld auch für Mitarbeiter anlegen, ebenfalls multiple.
      Als Eingabetemplate dann entweder das Formular selber bauen oder aber do_all mit einbem zusätzlichen eigenen Formularfeld mit den Mitarbeitern per feldname:= einbauen, dann auf %_put abfragen, auf undef abspeichern und %_put leern, damits nicht nochmal im do_all abgespeichert wird.
      Beim Feldnamen mit feldname:= werden nämlich von bp schon automatisch die multiplen Einträge mit new-line getrennt unter einem Feldnamen ins den %_put geschrieben....

      Ruben

     Antworten

    Beitrag von DAU (3 Beiträge) am Mittwoch, 15.September.2004, 22:16.
    Re: Mehrfachauswahl bei Relation?

      wo ist der bahnhof ???

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 15.September.2004, 22:57.
    Re: Mehrfachauswahl bei Relation?

      Jo, tatsächlich, hab es ausprobiert.
      http://baseportal.de/cgi-bin/baseportal.pl?htx=/Pouraga/Test

      Baseportal überrascht mich wiedermal.
      Funktioniert aber wie hempelr gesagt hat nur mit Parametern die auch mit := übergeben werden. (den zweiten Teil habe ich auch nicht verstanden :)


      @Markus:
      

      Wenn du das so machen möchtest, dann geht das nicht nur mit <do action=all...
      Du musst dir ein komplett eigenens Formular erstellen(mit allen anderen Feldern). Wenn es nur darum geht das die Namen bei dem Eintrag angezeigt werden, dann packe das aus der auswahl einfach so wie es ist in ein Textfeld.
      Aber das Formular erstellen wird vermutlich erstmal das grösste Problem sein:
      http://baseportal.de/baseportal/doku/baseportal.pl?htx=/doku/wiki&kennung=69

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 16.September.2004, 21:57.
    Re: Mehrfachauswahl bei Relation?

      mhm - also vielleicht so etwas klarer, das was ich euch jetzt hier "verrate" ist zwar zum einen nicht ganz sauberes HTML und zum anderen aber ein Schatz ;-)
      Man kann nämlich das do_all bzw. das bp-interne Formular etwas austricksen und ergänzen - bisher hat das noch keiner hier mal öffentlich gemacht, aber gehn tuts einwandfrei....ein paar Verbiegungen mit dem Put-Hash und fertig ist die Laube...
      Nachfolgend ein bischen kommentierter Code, macht damit was ihr wollt, sicher löst es manchem sein Problem in Bezug auf selbst gebaute Relationen und ohne eigene Formulare - ist auch nicht so schwer zu verstehen und lässt sich gut anpassen, sind ja nur paar Zeilen - es ist im Produktiveinsatz getestet!
      ---schnipp
      <perl>
      if (%_put){ # wenn im Put-Hash was steht (dann passiert in der DB irgendwas...)
      put [%_put], "Produkte" if $cmd eq "add"; # neuen DS zufügen, wenn Parameter cmd entspr.
      mod "Id==$Id", [%_put], "Produkte" if $cmd eq "mod" && $Id>=0; # ändern wenn Parameter cmd entspr.
      undef %_put; # put-Hash killen, damit nicht nochmal die Aktionen gemacht werden
      $cmd = "list"; # wieder Liste anzeigen (ist m.E. sinnvoller als wieder das Eingabeform...)
      }
      if ($cmd eq "do_add" || $cmd eq "do_mod"){ # wenn Neu- oder Löschen-Link gewählt wurde
       my $dsn = $Id; # ID des Datensatzes in lokaler Variable sichern
       # Alle Nuzternamen aus der Nutzerdb holen und über eine Liste in einen Scalar
       # in Form eines multiplen Optionfeldes schreiben
       get "Mitarbeiter=*","Mitarbeiter", "mitarbeiterdb";
          while(get_next("mitarbeiterdb")){
          push @l_mitarbeiter,$Mitarbeiter; # Wert hinzufügen
          }
          #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
          foreach $lw(@l_mitarbeiter) {
          # hier evtl. noch fürs Ändern die Vorauswahl treffen,
          # alles kann man ja nun auch nicht einfach so hergeben ;-)
          $a_options .= "<option value=$lw>$lw</option>"; # das sind die einzelnen Optionwerte
          }
          #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
          if ($cmd eq "do_mod"){ # nur wenn Ändern gewählt
          # den Datensatz holen, der geändert werden soll und die Mitarbeiter in ne Variable speichern,
          # die im Moment für den Artikel zuständig sind -
          # ACHTUNG: Das Feld muss beim do_all dann mittels
          # formfields ausgeklammert werden, sonst wirds Mist...
          get "Id==$dsn", "Produkte","istmitarbeiter";
          $a_mitarbeiter = convert_br($Mitarbeiter); # die new-lines in br's wandeln
          # Die Werte für den aktuellen Mitarbeiter in die Ausgabevar schreiben
          $a_mitarbeiter = "<b>Zuständige Mitarbeiter</b> für den Artikel $Produktname:<br> $a_mitarbeiter<br>";
          } # E if do_mod
       # nun noch das multiple Optionfeld bauen, dabei Formulardef. vornehmen,
       # damit der Feldinhalt mit ins %_put wandert
       # ist ein unsauberer Trick - weiss nicht, ob es in allen VBrowsern funzt....
       # im Firefox 0.91 und IE6 SP2 gehts
       # Das Formfeld und die zusätzlichen Infos in ne Var schreiben
       $ff_mitarbeiter =<<EOF;
       <hr width=75%>
       $a_mitarbeiter
       <p>Bitte zuständigen Mitarbeiter für das Produkt wählen:</p>
       <!-- Dieses Form-Statement ist redundant, aber es baut das Feld so ein, dass die Daten
       mit ins \%_get kommen-->
       <form action="$_link&db=$_db&cmd=add" name="_baseportal_form0" method="post" enctype="multipart/form-data">
       <select name="Mitarbeiter:=" size=5 multiple>
       $a_options
       </select><br>
       <hr width=75%>
      EOF
      } # E if do_mod|do_add
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      out $ff_mitarbeiter; # ist leer wenn nicht neu oder ändern
      do_all "db=Produkte formfields=-Mitarbeiter","Produkte";
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      </perl>
      

      Good Luck
      Ruben

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 16.September.2004, 22:20.
    Re: Anschauungsurl vergesesn, war: Mehrfachauswahl bei Relation?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 17.September.2004, 14:33.
    Re: Mehrfachauswahl bei Relation? -> bib ;-)

      Das wär doch was für die Bibliothek... ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 17.September.2004, 20:19.
    Re: Mehrfachauswahl bei Relation? -> bib ;-)

      selber auch nich gewusst, dass das geht?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 17.September.2004, 22:57.
    Re: Mehrfachauswahl bei Relation? -> bib ;-)

      Nee... Das Ganze ist mehr als die Summe seiner Teile ;-)

     Antworten


     
 Liste der Einträge von 28350 bis 28500:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!