Anzeige:
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 15 von 35

Thema: einlesen von werten in ein option feld

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101

    einlesen von werten in ein option feld

    Hallo Leute,

    ich versuche mich hier die werte die in der Datenbank in einem einzelenen feld untereinander stehen in ein solches feld einzulesen, leider bekomme ich die werte nicht untereinander in das Feld. Weis jemand Rat?
    Habe es zum versuchen mal
    <select name="arten" size=6>
    <option>
    <option>
    </select>

    PHP-Code:
    <?
    while($opt_arten= mysql_fetch_array($opt_result))
    {
    echo "<option>" . $opt_arten['arten'] . "<option>\n";
    }
    ?>
    Also er schreibt alles zwichen die <option> und gibt das nicht einzeln aus. Ist es vielleicht besser für jeden wert eine eigenes feld in der datenbank zu machen oder wie könnte man das am besten machen?

  2. #2
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    könntest du mal posten, was in der Datenbank / Array steht, bzw. was er dir ausgiebt... ich kann es sonst schlecht nachvollziehen...


  3. #3
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Also in der DB stehen in einem Feld verschiedene werte mit leerzeichen getrennt, also so: wert1 wert2 wert3 usw.

    ausgabe:

    <option>wert1 wert2 wert3 wert4 wert5 <option>

    Ich brauche das halt untereinander. also:

    <option>wert1</option>
    <option>wert2</option>
    <option>wert3</option>
    <option>wert4</option>
    <option>wert5</option>
    Geändert von ace23 (01-12-2002 um 02:27 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.06.2002
    Ort
    Hof
    Beiträge
    154
    Und wieso sollten die Werte, wenn
    Du alle in einem Feld hast und dieses
    Feld holst, die Werte auf einmal, ohne
    weiteres Zutun nacheinander geliefert
    werden?

    Du könntest die werte in verschiedene
    Zeilen eintragen oder die gelieferte
    Zeichenkette mittels explode-Befehl
    in ein Array umwandeln.

    cu, stop.h

  5. #5
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    dem ist eigentlich nix mehr hinzuzufügen...

    Wenn ich schon ne DB zur verfügung hab würde ich an deiner stelle dazu tendieren das ganze als mehrere Datensätze zu verwalten, also sagen wir eine tabelle tbl_options, die jeden Auswahlpunkt als Datensatz enthält. Dann könntest du z.B. ja auch die Beschriftung für den Punkt in den Datensatz integrieren usw.


  6. #6
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Hm,

    also ich habe es nun so realisiert das ich die inhalte mit html code komplett aus der db auslese, daß funktioniert auch. Nur nach euren postings denke ich ist das mist.

    Ich möchte unter anderem 2 dropdowns machen, die sich verändern nachdem was im ersten ausgewählt wird. Das macht mir am meißten Probleme.

    Ich will im ersten menü alle Bundesländer haben, diese sollten auch alle aus der DB in das menü eingelesen werden.
    Wenn ich dann z.B. Bayern auswähle im ersten Menü sollen im zweiten Menü dann alle Regionen von Bayern stehen. Und das dann for alle weiteren Bundesländer auch.

    Ich habe halt so gedacht, daß es geht, daß ich alle Bundesländer mit leerzeichen in das Feld eintrage und er mir die dann ins menü einlesen kann.
    In Tabelle options stehen die felder die nach den menüpunkten benannt sind und dann in jeweiligem feld halt die werte getrennt mit leerzeichen.
    In der Tabelle regionen stehen alle bundesländer und in den jeweiligen feldern wieder die regionen mit leerzeichen getrennt.

    Also was wäre nun klüger, bin nun etwas verwirrt?

  7. #7
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Ääähm...

    heisst das du hast in deinen Tabellen jeweils nur einen Datensatz?

    Da hast du an der Konzeption von Datenbanken ein bisschen was missverstanden!

    Deine DB sollte so, oder ähnlich aussehen (lässt sich so nur leider etwas schwer beschreiben) :

    tabelle bundeslaender:

    felder:
    RECID (Primary Key, Auto Increment)
    KUERZEL (z.B. Kürzel fürs Bundesland, Unique)
    BLAND (z.B. der Name des Bundeslands ausgeschrieben)

    tabelle regionen

    felder:
    RECID (Primary Key, Auto Increment)
    KUERZEL (z.B. Kürzel für die Region)
    REGION (z.B. Name der Region)
    BLAND_KUERZEL (Das Kürzel Name des Bundeslandes in dem die Region liegt)

    ....
    ...
    ..
    .
    usw...

    Als erstes machst du dann nen Select auf deine Bundesländer und machst dann sowas in der Art:

    PHP-Code:
    <?
    $opt_result=mysql_query("SELECT KUERZEL, BLAND FROM bundeslaender");
    echo "<select name=\"land\">\n";
    while($opt_arten= mysql_fetch_array($opt_result))
    {
    echo "<option>" . $opt_arten['KUERZEL'] . "<option>".  $opt_arten['BLAND'] ."\n";
    }
    echo "</select>\n";
    ?>
    Dann Schickst du die Seite ab und auf der nächsten Seite machst du dann einen SELECT à la...

    PHP-Code:
    $query="SELECT KUERZEL, REGION FROM regionen where BLAND_KUERZEL = '"$_REQUEST['land'] . "'"
    Mit dem ergebnis verfährst du wie oben

    Wenn da jetzt fehler drin sind tuts mir leid... hab nix getestet!
    Geändert von Gaert (01-12-2002 um 14:58 Uhr)


  8. #8
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Ich habe eigentlich nicht vorbeigedacht an der DB funktion, ich habe mir nur irgendwie da ganze anderst überlegt

    Aber wo Du das mit dem Kürzeln ansprichst, wird mir einiges klarer. Dann sollte das auslesen der jeweiligen werte auch kein Problem sein wenn ich mir das so ansehe.

    Ok dann bleibt aber noch eine kleine Frage offen. Ich muss das ja sicher mittels Javascript lösen mit der änderung des zweiten dropdowns oder wie meinst du das mit abschicken und auf der neuen seite mache ich einen select, es gibt nur die eine seite und keine weitere zweite.

  9. #9
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Es gibt zwei möglichkeiten...

    1. Du machst einen Submit (kann ja auch auf die gleiche Seite sein) und wertest dann die Variable land aus.
    2. Du machst das ganze mit JavaScript und dem OnChange Ereignis.

    Ich persönlich finde die erste Variante besser, da du mehr kontrolle hast!

    Ein beispiel hierfür ist:

    http://www.leadtek.nl/site/de/pages/support/dl.php


  10. #10
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Ok ich verstehe was Du meinst.
    Das Problem bei der Sache ist nur, daß ich die seite nciht neu einladen kann. Es werden vor den beiden menüs schon eingaben gemacht in textfeldern und wenn ich das dann neu laden würde, dann wären alle eingaben weg die schon gemacht worden sind bevor man zu den beiden dropdowns kommt.

  11. #11
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    wieso?
    die Textfelder werden doch ebenfalls übermittelt... schreib doch die Werte einfach wieder rein, oder führe sie als hidden fields auf der nächsten seite mit!


  12. #12
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Ok stimmt auch wieder.

    Ich habe nun mal die Bundesländer im select, aber ich bekomme die ganze seite immer neu genneriert und dann steht im dropdown jeweil nur ein wert. Also er macht für jedes bundesland nun eine neue seite mit jeweil einem wert im dropdown.

    Was läuft da falsch?

    EDIT: Ok habs nun.

    Ich habe nun folgendes in der Datei:
    PHP-Code:
    <?php

    error_reporting
    (8);
    include(
    "config.php");

    $datenow=gmdate("d.m.Y"); 

    $db_con mysql_connect($db_server$db_user$db_password) or die(mysql_error());
          
    mysql_select_db($db_name) or die(mysql_error());

    $hoteloptions     = ("SELECT * FROM $db_opt_table");
    $bundesland    mysql_query("SELECT kuerzel, bland FROM hotel_bl");


        
    mysql_close($db_con);
    ?>

    Ab hier ist dann normaler HTML Code

    Dazwischen dann die Dropdowns:

    <tr bgcolor="#CCCCCC">
           <td>Bundesland</td>
           <td><form name="form1" method="post" action="">
      <select name="bland">
    <?php
    while($bl_land  mysql_fetch_array($bundesland))
    {
    echo 
    "<option>" $bl_land['bland'] . "</option>";
    }
    ?>
      </select><input type="submit">
    </form>
    </td>
           <td>Bundesland Auswahl</td>
    </tr>
    <tr bgcolor="#BBBBBB">
           <td>Region</td>
           <td><form name="form2" method="post" action="">
      <select name="region">
    <?php
    $region        
    ="SELECT region FROM hotel_region where bland_kuerzel = '"$_REQUEST['bland'] . "'";
    while(
    $reg_out  mysql_fetch_array($region))
    {
    echo 
    "$reg_out";
    }
    ?>
    </select>
    </form>
    </td>
           <td>Region Auswahl</td>
    </tr>
    Die Bundesländer werden nun im ersten dropdown angezeigt.
    Was ich nun nicht verstehe ist wie er nun die richtigen regionen für das zweite auslesen soll. ich weis ich stelle mich etwas dumm an, aber ich finde im php manual nichts gescheites.
    Geändert von ace23 (01-12-2002 um 18:18 Uhr)

  13. #13
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317

    Thumbs up

    Das stimmt eigentlich schon so...

    Allerdings hast du ein
    PHP-Code:
    $reg_result=mysql_query($region); 
    vor der zweiten while Schleife vergessen!
    Und der Schleifenkopf müsste dann heissen
    PHP-Code:
    while($reg_out  mysql_fetch_array($reg_result)) 
    ...

    Werte in deiner die du in hotel_bl im Feld bland hast müssen natürlich auch mit denen von hotel_region im Feld bland_kuerzel kompatibel sein!
    (Es bringt nix wenn in hotel_bl.bland Baden Württemberg steht und in hotel_region.kuerzel BW steht ... klar!)
    Geändert von Gaert (01-12-2002 um 21:48 Uhr)


  14. #14
    Registrierter Benutzer
    Registriert seit
    25.09.2001
    Beiträge
    101
    Ok habs eingefügt, aber es will absolut nix kommen. Woher kommt denn eigentlich das $REQUEST ?`Weis der überhaupt was der damit machen soll?`

    SO schauts nun aus:
    PHP-Code:
    <?php

    while($b_land  mysql_fetch_array($bundesland))
    {
    echo 
    "<option>" $b_land['bland'] . "</option>\n";
    }

    ?>
      </select><input type="submit">
    </form>
    </td>
           <td>In welchem Bundesland liegt die Unterkunft</td>
    </tr>
    <tr bgcolor="#BBBBBB">
           <td>Region</td>
           <td><form name="region" method="" action="">
      <select name="regres">
    <?php

    $region        
    "SELECT kuerzel, region FROM hotel_region where bland_kuerzel = '"$_REQUEST['bland'] . "'";
    $reg_result=mysql_query($region);
    while(
    $reg_out  mysql_fetch_array($reg_result))
    {
    echo 
    "<option>" $reg_out "</option>\n";
    }
    mysql_close($db_con);
    ?>

  15. #15
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    $_REQUEST in enthält den PHP Versionen >= 4.1 die Werte der Variablen, die per POST oder GET übermittelt zum Formular übermittelt wurden!
    Es ist ein Superglobales Array... weitere sind $_POST , $_GET , $_SERVER ...

    Sinn und Zweck bei dir ist folgendes:

    Beim ersten aufruf deines Skripts ist $_REQUEST['bland'] leer, daher werden keine Bundesländer angezeigt!
    Wenn du das Skript abschickst, sollte in $_REQUEST['bland'] eigentlich der Wert stehen, den du ausgewählt hast (der string zwischen den <option> Tags).

    Lass dir mal das Zweite select mit dem $_REQUEST['bland'] ausgeben...

    ach ja... bei der zweiten while schleife muss es
    [PHP]
    echo "<option>" . $reg_out['kuerzel'] . "</option>". $reg_out['region']. "\n";
    [/PHP

    heißen!

    beim ersten hätte ich es auch eher so gemacht, daß das kürzel zwischen den <option> Tags steht und die Erklärung dahinter!
    Geändert von Gaert (01-12-2002 um 23:47 Uhr)


Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •