Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei einer Auswahlliste

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem bei einer Auswahlliste

    Hallo Leute,

    ich habe eine Auswahlliste mit Datenbankeinträgen wie Firmenname gefüttert. So, jetzt will ich diese in einer anderen Tabelle speichern. Mein Problem: jedes Option hat ein Value, ich habe alles auf 1 gesetzt, so dass das ausgewählte in die Tabelle gespeichert wird. Wenn ich aber dann auf submit gehe, speichert er nichts in die Tablle, sie wird jedoch um eins erweitert und wenn ich direkt eintippe lässt sich alles speichern. Hat einer ne Idee an was das liegt ? DANKE

    PHP-Code:
     
    <select>
    <?php
     
    while ($dsatz mysql_fetch_assoc($res))
     {
     echo
    "<option value='1'>";
     echo
    "" $dsatz["Firma"] . "";
     echo
    "</option>";
     }
     
    ?>
    </select>
     
    <?php
     
    if(isset($_POST['ent']))
     {
     
    $sqlab "insert into bestellungen(Firma)
        VALUES (' " 
    $_POST['1'] . " ')";
     
    ?>


  • #2
    Code:
    <form method="post" action="?">
     <select name="ein_name">
      <option value="1">a</option>
      <option value="2">b</option>
      <option value="3">c</option>
     </select>
    </form>
    Bei so einem select Element wird nur der Wert der gewählten Option gesendet. Und zwar immer unter dem Namen des select Elements. Also in diesem Fall ein_name=1 oder ein_name=2 oder ein_name=3.
    Über das form Element wurde die Methode POST ausgewählt. Das ist eine Art, die Daten zu verschicken. Es gibt zur Zeit noch GET (und PUT).
    In PHP hast Du dann die Variable $_POST['ein_name'] und diese entspricht dem gesendeten ein_name=wert.

    Kommentar


    • #3
      Ja das habe ich verstanden, habe aber noch ne Frage zu meinem Quellcode.

      Also mit
      PHP-Code:
      while ($dsatz mysql_fetch_assoc($res)) 
      macht er ja das was in der geschweiften Klammer steht so oft wie viel datensätze vorhanden sind.
      und dann müsste er ja hier

      PHP-Code:
      {
       echo
      "<option value='1'>";
       echo
      "" $dsatz["Firma"] . "";
       echo
      "</option>";
       } 
      bei jedem datensatz ein option setzen mit dem value 1 und das option wird dann mit dem namen . $dsatz["Firma"] . benannt. Wenn ich dann z.B XYZ auswähle und dann abschicke müsste es ja das Value 1 haben und mit

      PHP-Code:
      $sqlab "insert into bestellungen(Firma) VALUES ('" $_POST[ein_name] . "')"
      in die db gespeichert werden können ?

      Kommentar


      • #4
        Zitat von karina_02 Beitrag anzeigen
        Ja das habe ich verstanden
        Offenkundig leider nicht.
        bei jedem datensatz ein option setzen mit dem value 1 und das option wird dann mit dem namen . $dsatz["Firma"] . benannt.
        Nein, das select Element gibt den Namen an. Deine Optionen haben immer den Wert 1. Damit kannst Du die Datensätze nicht unterscheiden.

        Kommentar


        • #5
          bei dem Schreiben in die DB aber bitte Vorsicht walten lassen, siehe hier :
          http://www.php.de/php-einsteiger/110....html#post7311

          Kommentar


          • #6
            PHP-Code:
            {
             echo
            "<option value="$dsatz["Firma"] .">";
             echo
            "" $dsatz["Firma"] . "";
             echo
            "</option>";
             } 
            so könnete ich die datensätze dann unterscheiden, denn jede Firma hat einen anderen Namen.
            Habe ich auch probiert. Ich wollte den über submit geposteten datensatz (. $dsatz["Firma"] .) in die db schreiben mit

            PHP-Code:
            $sqlab "insert into bestellungen(Firma)
                VALUES (' " 
            $dsatz["Firma"] . " ')"
            Mein Problem ist das er den ausgewählten datensatzdann nicht in die db speichert. Ich habe schon mit
            PHP-Code:
            echo". $dsatz["Firma"] ."
            getestet ob es über die Auswahlliste überhaupt ankommt. FEHLANZEIGE tuts nicht. WIESO ? WEISS ICH NICHT. IHR VIELLEICHT?

            Kommentar


            • #7
              Bitte prüfe mithilfe von
              PHP-Code:
              print_r($_POST
              Was in deinem POST Array steht.

              POST ist ein Assoziatives Array. In dem nunmal nicht der Value (1) den Schlüssel bildet sondern der Name des Elements. Da dein Select keinen Namen hat dürfte glaube ich auch net sonderlich viel sinnvolles ankommen

              Kommentar


              • #8
                Zitat von karina_02 Beitrag anzeigen
                Ich habe schon mit
                PHP-Code:
                echo". $dsatz["Firma"] ."
                getestet ob es über die Auswahlliste überhaupt ankommt. FEHLANZEIGE tuts nicht. WIESO ? WEISS ICH NICHT. IHR VIELLEICHT?
                versuch's mal mit:

                PHP-Code:
                echo"$dsatz['Firma']"
                oder:
                PHP-Code:
                echo$dsatz['Firma']; 

                Kommentar


                • #9
                  Zitat von phpler
                  echo". $dsatz['Firma'] .";
                  Das gibt einen Parse error
                  Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
                  Und was sollen die Punkte da?

                  Zitat von phpler
                  echo$dsatz['Firma'];
                  schon besser

                  Kommentar


                  • #10
                    Was rätselt ihr hier eigentlich noch rum? Die Lösung wurde schon längst genannt, ein Formularfeld braucht einen Namen!

                    Kommentar


                    • #11
                      Zitat von cycap Beitrag anzeigen
                      Was rätselt ihr hier eigentlich noch rum?
                      wir rätseln doch gar nicht, sondern tun unser profundes Wissen kund, um unseren Profilneurosen zu genügen ...

                      Kommentar


                      • #12
                        Zitat von cycap Beitrag anzeigen
                        Was rätselt ihr hier eigentlich noch rum?
                        Wieso ihr?

                        Kommentar


                        • #13
                          Jo danke jungs, das Problem ist behoben, ABER =) ich habe jetzt z.B Sony Deutschland GmbH in der Tabelle und in der Auswahlliste wird es auch so angezeigt aber wenn ich jetzt das in eine ander Tabelle speicher übernimmt er nur das erste Wort Sony aber nicht den ganzen String. Wisst ihr wieso ?

                          Kommentar


                          • #14
                            value=a b c <- falsch
                            value="a b c"

                            Es muss mit Anführungszeichen beim Browser ankommen.
                            PHP-Code:
                            echo 'value="'.htmlspecialchars($valENT_NOQUOTES).'">'

                            Kommentar


                            • #15
                              du machst das sowieso ziehmlich umständlich... warum arbeitet man in einer auswahl mit klartext? wozu gibts ids?

                              Kommentar

                              Lädt...
                              X