Optionsfeld aus Datenbank erzeugen - 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 Roger (141 Beiträge) am Montag, 24.März.2003, 11:34.
    Optionsfeld aus Datenbank erzeugen

      Hallo,

      In meiner Datenbank gibt es unter anderem die Felder Wohnort und Bundesland.

      Um ein Suchformular zu erzeugen habe ich ein Optionsfeld für die Wohnorte angelegt. So, daß nur die Wohnorte erscheinen, die schon eingeben wurden.

      Dieses Optionsfeld würde ich gerne, wie ich es auf anderen Webseiten auch sehe, so modifizieren, daß wenn ein User ein Bundesland über ein zweites Optionsfeld gewählt hat, nur die Orte erscheinen, die auch zum jeweiligen Bundesland gehören.

      Mein Template bisher:

      -------------------------

      <perl>
      #######################################################
      #              Variablen definieren                   #
      #######################################################
      

      $db = "benutzerverwaltung";

      #######################################################
      

      #######################################################
      # Alle Datenbankeinträge holen und wohnortsrtsauswahl #
      # bauen (nur die Orte, die Verans eingetr. haben) -   #
      # Array füllen, Doubletten verhindern                 #
      #######################################################
      

      get "Wohnort~=*", "$db";

      while(get_next("$db"))
      {
           $Wohnort=lc($Wohnort);
            if ($Wohnort gt "a")
             {
              push @opWohnort, $Wohnort if index("@opWohnort", "$Wohnort")<0;
      
             }
      EOF
      }
      #######################################################
      # Aufbereitung der Arraywerte von @opWohnort für      #
      # (Drop-Down - option-ausgabe)                        #
      #######################################################
      

      @opWohnort_sort= sort @opWohnort;
      foreach $l_ort (@opWohnort_sort)
      {
      $list_opwohnort=$list_opwohnort."<option value=$l_ort>$l_ort</option>";
      }
      

      #######################################################
      </perl>
      <form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data" target="_self">
      

      <!-- Ortssuche Optionfeld-->

       <font size=2>
        <select name="fort=" class=klein><option value="">alle</option>
         $list_opwohnort
        </select></font></td>
        <input type="Submit" name="" value="Suchen">
      </form>
      

      <!--Ende Optionsfeld Wohnort-->

      Ich möchte nicht erst das Bundesland bestätigen müssen, sondern, in dem Moment, wo ich das Bundesland im Dropdown gewählt habe auch schon die richtigen Orte im obrigen Dropdown antreffen.

      Geht das? Und wenn ja, wie?

      Alles Liebe

      Roger


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Roger (141 Beiträge) am Montag, 24.März.2003, 11:34.
    Optionsfeld aus Datenbank erzeugen

      Hallo,

      In meiner Datenbank gibt es unter anderem die Felder Wohnort und Bundesland.

      Um ein Suchformular zu erzeugen habe ich ein Optionsfeld für die Wohnorte angelegt. So, daß nur die Wohnorte erscheinen, die schon eingeben wurden.

      Dieses Optionsfeld würde ich gerne, wie ich es auf anderen Webseiten auch sehe, so modifizieren, daß wenn ein User ein Bundesland über ein zweites Optionsfeld gewählt hat, nur die Orte erscheinen, die auch zum jeweiligen Bundesland gehören.

      Mein Template bisher:

      -------------------------

      <perl>
      #######################################################
      #              Variablen definieren                   #
      #######################################################
      

      $db = "benutzerverwaltung";

      #######################################################
      

      #######################################################
      # Alle Datenbankeinträge holen und wohnortsrtsauswahl #
      # bauen (nur die Orte, die Verans eingetr. haben) -   #
      # Array füllen, Doubletten verhindern                 #
      #######################################################
      

      get "Wohnort~=*", "$db";

      while(get_next("$db"))
      {
           $Wohnort=lc($Wohnort);
            if ($Wohnort gt "a")
             {
              push @opWohnort, $Wohnort if index("@opWohnort", "$Wohnort")<0;
      
             }
      EOF
      }
      #######################################################
      # Aufbereitung der Arraywerte von @opWohnort für      #
      # (Drop-Down - option-ausgabe)                        #
      #######################################################
      

      @opWohnort_sort= sort @opWohnort;
      foreach $l_ort (@opWohnort_sort)
      {
      $list_opwohnort=$list_opwohnort."<option value=$l_ort>$l_ort</option>";
      }
      

      #######################################################
      </perl>
      <form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data" target="_self">
      

      <!-- Ortssuche Optionfeld-->

       <font size=2>
        <select name="fort=" class=klein><option value="">alle</option>
         $list_opwohnort
        </select></font></td>
        <input type="Submit" name="" value="Suchen">
      </form>
      

      <!--Ende Optionsfeld Wohnort-->

      Ich möchte nicht erst das Bundesland bestätigen müssen, sondern, in dem Moment, wo ich das Bundesland im Dropdown gewählt habe auch schon die richtigen Orte im obrigen Dropdown antreffen.

      Geht das? Und wenn ja, wie?

      Alles Liebe

      Roger

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 24.März.2003, 15:59.
    Re: Optionsfeld aus Datenbank erzeugen

      mit javascript. ist aber heftig....

      Sander

     Antworten

    Beitrag von Roger (141 Beiträge) am Montag, 24.März.2003, 16:42.
    Re: Optionsfeld aus Datenbank erzeugen

      Hallo Sander,

      Eine Javalösung habe ich gefunden, damit erzeuge ich einen Zwandssubmit, wenn wie hier, das Bundeslannd gewählt wurde.

      <!-- Bundeslandsuche Optionfeld-->
      Bundesland
       <font size=2>   <select name="Bundesland:=" onchange="this.form.submit()"style="background-color:#d3d3d3;
       font-size:9pt; color:#003264; font-family:Arial,sans-serif;"><option value="*">alle</option>
         $list_opBundesland
        </select></font><br>
      

      <!--Ende Bundeslandfeld Wohnort-->

      ---------------

      Hier erstelle ich im gleichen Template ein zweites Formfeld, welches die Daten des ersten Formfeld an ein folgendes Template übertragen soll.


      <!--Formfels zur übemittlung wenn auswah getroffen-->
      

      <form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/RogerPeterWerner/P/ortwahl2" method="post" enctype="multipart/form-data" target="_self">
      <input type=hidden name="Bundesland:=" value="$Bundesland">
      <input type=hidden name="Postleitzahl:=" value="$Postleitzahl">
      <input type=hidden name="Wohnort:=" value="$Wohnort">
      Auswahl: $Bundesland<br>
      $Postleitzahl $Wohnort<br>
      <input type="Submit" name="" value="Suchen">
      </form>
      

      <!--Ende Formfeld zur Übemittlung wenn Auswah getroffen-->


      soweit, so gut, jetzt habe ich nur ein Problem, alle Variablen, die ich vorher ins Array gelesen habe, werden vorbelegt. Dies macht es mir unmöglich, den "Parameter" alle, also leere Variablen zu übertragen, wenn oben nichts gewählt wurde.

      Wie kann ich bei der Aufbereitung der Arraywerte eine Voreinstellung ("") erzeugen, die nur bestehen bleibt, wenn ich im Optionsfeld nichts ändere?

     Antworten

    Beitrag von Roger (141 Beiträge) am Montag, 24.März.2003, 17:02.
    Re: Optionsfeld aus Datenbank erzeugen

      Hallo Sander,

      habe jetzt mal rumprobiert, mein Problem ist eigentlich, daß ich, in das neue Template ja nur die ausgeählten Einträge übertragen will.
      Wenn der User Nordrhein-Westfalen gewählt hat, dann möchte ich, daß die Variablen folgendermaße aussehen:

      &Bundesland=Nordrhein-Westfalen&Postleitzahl=&Wohnort=
      

      Leider, habe ich entweder immer einen Wert, oder wenn ich mit
      &Bundesland=$list_opBundesland usw... übergebe, dann alle in Frage kommenden Werte als langen Zeichenstring in der Übergabe.
      
      Ich müßte irgendwie die Werte aus Formular 1 ins Formular 2 bekommen welches nur aus dem Sendenbutton besteht.

     Antworten

    Beitrag von Roger (141 Beiträge) am Montag, 24.März.2003, 18:02.
    an Sander: Re: Optionsfeld aus Datenbank erzeugen

      Hallo Sander,

      schaue Dir das mal an, wie es jetzt aussieht:
      Der Link steht im Quelltext.
      Es scheint, als wenn ich da der Lösung auf die spur gekommen bin. Bisher habe ich "nur" mit dem Bundesland experimentiert.

      Ich würde gerne Deine Meinung zum Code wissen und wo dort noch etwas zu obtimieren ist.
      Wenn es komplett steht, dann möchte ich als nächstes eine Verbindung zur Plz-Datenbank aus der Bib errichten, wodurch dann sicher auch Bundesländer und in Zukunft auch Regierungsbezirke eingeschlossen werden können.



      <perl>
      #######################################################
      #              Variablen definieren                   #
      #######################################################
      

      $db = "benutzerverwaltung";

      #######################################################
      

      #######################################################
      # Alle Datenbankeinträge holen und wohnortsrtsauswahl #
      # bauen (nur die Orte, die Verans eingetr. haben) -   #
      # Array füllen, Doubletten verhindern                 #
      #######################################################
      

      $tmpBundesland=$Bundesland;
      $tmpPostleitzahl=$Postleitzahl;
      $tmpWohnort=$Wohnort;
      

      get "Wohnort==$Wohnort Bundesland==$Bundesland Postleitzahl==$Postleitzahl" , "$db";

      while(get_next("$db"))
      {
           $Wohnort=lc($Wohnort);
            if ($Wohnort gt "a")
             {
              push @opWohnort, $Wohnort if index("@opWohnort", "$Wohnort")<0;
              if ($Bundesland gt "A")
               { 
                 push @opBundesland, $Bundesland if index("@opBundesland", "$Bundesland")<0;
               }
              push @opPostleitzahl, $Postleitzahl if index("@opPostleitzahl", "$Postleitzahl")<0;
             }
      EOF
      }
      $Bundesland=$tmpBundesland;
      $Postleitzahl=$tmpPostleitzahl;
      $Wohnort=$tmpWohnort;
      #######################################################
      # Aufbereitung der Arraywerte von @opWohnort für      #
      # (Drop-Down - option-ausgabe)                        #
      #######################################################
      

      @opWohnort_sort= sort @opWohnort;
      foreach $l_ort (@opWohnort_sort)
      {
      $list_opWohnort=$list_opWohnort."<option value=$l_ort>$l_ort</option>";
      }
      

      #######################################################
      # Aufbereitung der Arraywerte von @opBundesland für   #
      # (Drop-Down - option-ausgabe)                        #
      #######################################################
      

      @opBundesland_sort= sort @opBundesland;
      foreach $l_Bundesland (@opBundesland_sort)
      {
      $list_opBundesland=$list_opBundesland."<option value=$l_Bundesland>$l_Bundesland</option>";
      }
      

      #######################################################
      # Aufbereitung der Arraywerte von @opPostleitzahl für #
      # (Drop-Down - option-ausgabe)                        #
      #######################################################
      

      @opPostleitzahl_sort= sort @opPostleitzahl;
      foreach $l_Postleitzahl (@opPostleitzahl_sort)
      {
      $list_opPostleitzahl=$list_opPostleitzahl."<option value=$l_Postleitzahl>$l_Postleitzahl</option>";
      }
      #######################################################
      </perl>
      <form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/RogerPeterWerner/P/ortwahl" method="post" enctype="multipart/form-data" target="_self">
      <!-- Bundeslandsuche Optionfeld-->
      Bundesland
       <font size=2>
      <perl>
       if ($Bundesland eq "")
        {
      out<<EOF;
        <select name="Bundesland:=" onchange="this.form.submit()"style="background-color:#d3d3d3;
       font-size:9pt; color:#003264; font-family:Arial,sans-serif;"><option value="">alle</option>
      EOF
        }
       else
        {
      out<<EOF;
        <select name="Bundesland:=" onchange="this.form.submit()"style="background-color:#d3d3d3;
       font-size:9pt; color:#003264; font-family:Arial,sans-serif;"><option value=$Bundesland>$Bundesland</option>
      <option value="">alle</option>
      EOF
        }
      </perl>
      
         $list_opBundesland   </select></font><br> <!--Ende Bundeslandfeld Wohnort-->

      <!-- PLZsuche Optionfeld-->
      Postleitzahl
       <font size=2>
        <select name="Postleitzahl:=" onchange="this.form.submit()"><option value="">alle</option>
         $list_opPostleitzahl
        </select></font>
      

      <!--Ende Optionsfeld PLZ-->



      <!-- Ortssuche Optionfeld-->
      Ort
       <font size=2>   <select name="Wohnort:=" onchange="this.form.submit()"><option value="">alle</option>    $list_opWohnort   </select></font><br>
      <!--Ende Optionsfeld Wohnort-->

      </form>
      

      <form name="Wohnort" action="http://baseportal.de/cgi-bin/baseportal.pl?htx=/RogerPeterWerner/P/ortwahl2" method="post" enctype="multipart/form-data" target="_self">
      <input type=hidden name="Bundesland:=" value="$Bundesland">
      <input type=hidden name="Postleitzahl:=" value="$Postleitzahl">
      <input type=hidden name="Wohnort:=" value="$Wohnort">
      <perl>
      if ($Bundesland ne "")
         {
          out "Auswahl: ",$Bundesland,"<br>";
         }
        else
         {
          out "Alle Bundesländer<br>";
         }
      

      if ($Postleitzahl ne "")
         {
          out "Postleitzahl: ",$Postleitzahl,"<br>";
         }
        else
         {
          out "Keine bestimmte Postleitzahl<br>";
         }
      

      if ($Wohnort ne "")
         {
          out "Wohnort: ",$Wohnort,"<br>";
         }
        else
         {
          out "Kein bestimmter Ort<br>";
         }
      </perl>
      

      <input type="Submit" name="" value="Suchen">
      </form>
      


      -------------ende--------------


      Hast Du einen Codeschnipsel, mit dem ich in einem Durchlauf in meiner Datenbank alle Orte umschreiben kann, so daß immer der erste Buchstabe groß geschrieben wird, auch beim 2. Wort, bei Doppelnamen. Und Leerzeichen, wie bei:
      Köln Chorweiler durch ein "-" ersetzt werden?

      Danke,

      Roger

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 24.März.2003, 23:55.
    Re: an Sander: Re: Optionsfeld aus Datenbank erzeugen

      das ist mir jetzt zu kompliziert um alles durchzugehen... funktionierts so wie du wolltest?

      schnipsel:
      get "","dbname","erg";
      while(get_next "erg"){
      my @split_names=split(/ /,$ort); #ort in feldname ändern
      foreach (@split_names){
      ucfirst($_);
      mod "Id==$_id",["ort",join("-",@split_names)],"dbname";
      }
      }
      

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 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.44s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!