input im option tag?

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

  • input im option tag?


    da ich neu hier bin und des deswegen auch mein erstes thema is das ich eröffne
    stell ich mich ma kurz vor ^^
    erinas 21
    hab vorm halben jahr mit php angefangen
    hatte vorher aber auch schon andere scriptsprachen inne
    die ich etwas besser kann als php
    ah und ich habs echt nich mit rechschreibung bitte entschuldigt das

    also zum problem:
    arbeite an einem formular

    echo '<select class="text" name="x">';
    datenbank anbfrage
    while
    echo '<option value="'.$s.'">'.$y[$count].'</option>';
    }
    close

    andere datenbank anbfrage
    while
    echo '<option value="'.$s.'">'.$y[$count].'</option>';
    }
    close
    echo '</select>';
    sehr gekürzte fassung da die abfrage sehr groß ist im orginal
    und ich nich gern die etwas verkorsten variablen und tabellen namen zeige
    tut aber nichts zur sache die abfrage funtioniert
    das problem ist das ich nun zu der option eine weitere variable
    aus den dbs brauche inhalt soll true oder flase sein
    und die muss mit dem formular übergeben werden
    und anhand der auswahl des users ist die variable dem entsprechend
    aber es wäre zuviel arbeit
    das erst nach dem absenden neu heraus zu bekommen
    meine erste idee wäre

    <option value="'.$s.'"><input type="hidden" value="1" name="z">'.$y[$count].'</option>

    aber das klapt nicht oder? :O
    bin da nich ganz sicher genau so unsicher wie die frage
    ob das im richtigen bereich gepostet is xD
    weils ja iwi ne mischung aus html/php/sql? problem is xD

    naja trozdem danke und sry fals des falsch gepostet is =)
    ansonsten noch nen schönen aben an alle

  • #2
    Hallo und willkommen im Forum,

    bitte Forenregeln lesen und trotz Legasthenie Groß-/Kleinschreibung und Satzzeichen beachten. Für eine Krankheit kann man nichts, aber wenn du uns aus reiner Bequemlichkeit das Lesen erschwerst, darfst du dich nicht wundern, wenn irgendwann mal niemand antwortet.

    Zu deiner Frage. Benutze Sessions! Da dir diese Variablen offenbar schon vor dem Ausliefern der Seite bekannt sind, macht es nicht viel Sinn, auf manipulierbare Hidden-Felder zu setzen. Speichere die Werte in der Session und hol sie dir dort auch wieder heraus. Auf die Weise brauchst du diese Hidden-Felder nicht (die wie du schon vermutet hast an dieser Stelle nicht erlaubt sind) und böswillige Benutzer können dir auch keine manipulierten Daten unterschieben.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Erstmal danke für die schnelle Antwort.
      Und ja werd mich bemühen was die Rechtschreibung betrifft.

      Zu den sessions
      wüste nicht wie ich die da helfend benutzen könnte da
      ich ja nunmal nicht weiß was der User wählt.
      Wählt er eine der aufgelisteten Optionen aus der ersten DB
      ist die zu übergebene variable 1 aus der zweiten Optionsliste aber 0.

      Meine derzeitige Idee ist es die variable
      die ich mit der Option mitgebe
      und die gebrauchte variable zu nem string zusammen zu hauen
      und nach POST Übergabe wieder zu exploden. - z.b. so:
      PHP-Code:
      $option $option.';'.$gebraucht
      echo '<option value="'.$option.'">'.$y[$count].'</option>'
      Das müste dann wieder functionieren

      Kommentar


      • #4
        Hallo erinas,

        es ist haeufig schwierig aus einem moeglicherweise
        problematischen Loesungsansatz das eigentliche
        Problem herauszukristallisieren.

        Vielleicht ist es geschickter, wenn Du zunaechst
        das Problem so beschreibst, dass der Leser versuchen
        kann, es ohne Deinen Ansatz zu loesen.

        Anders formuliert: Man kann aus Deiner Beschreibung

        "das problem ist das ich nun zu der option eine weitere variable
        aus den dbs brauche inhalt soll true oder flase sein"

        die zugrundeliegende Datenstruktur nicht richtig
        erkennen. Welche Daten sollen abgefragt werden?
        Wie haengen diese Daten zusammen?

        Kommentar


        • #5
          OffTopic:
          Es gibt keinen Grund, seinen Text mitten im Satz umzubrechen. Das können "moderne" Browser später bei der Anzeige ganz von selbst.

          Kommentar


          • #6
            OffTopic

            Hallo Tobiaz,

            auch wenn's "OffTopic" ist, eine Antwort zu Deinem Einwand.
            Ich denke die Forumsbeiträge richten sich nicht an Browser,
            sondern an Leser. Ich glaube, dass auch Du schon die Erfahrung
            gemacht hast, dass eine zu große Zeilenlänge nicht gerade
            der Lesbarkeit dient. Es gibt sogar Leute, die sich die
            Mühe gemacht haben, die unter dem Aspekt der Lesbarkeit
            eines Textes "optimale" Zeilenlänge zu ermitteln.
            Dabei sind Empfehlungen von 40-80 Zeichen pro Zeile (je nach
            Art des zugrundeliegenden Textes) herausgekommen. Vgl. z.B.

            Lesbarkeit (Legibility).

            Bei moderne Monitoren sind Auflösungen von 1920x1200 Pixeln
            (oder sogar noch feiner) nicht unüblich. Dass bedeutet,
            dass bei der Defaulteinstellung des Forums Zeilenlängen
            von mehr als 250 Zeichen herauskommen. Ich bin nicht sicher,
            ob dies wirklich Deiner Vorstellung von einer optimalen
            Zeilenlänge entspricht.

            Da das Forum gelegentlich von Legasthenikern besucht wird,
            sind kurze Zeilen vielleicht auch ein Schritt in Richtung
            Barrierefreiheit.

            Kommentar


            • #7
              Zitat von mephisto111 Beitrag anzeigen
              Bei moderne Monitoren sind Auflösungen von 1920x1200 Pixeln
              (oder sogar noch feiner) nicht unüblich. Dass bedeutet,
              dass bei der Defaulteinstellung des Forums Zeilenlängen
              von mehr als 250 Zeichen herauskommen.
              Nein, die Breite richtet sich nicht nach der Bildschirmauflösung sondern nach der Breite des Browserfensters. Somit kann jeder Benutzer frei entscheiden, was für ihn die angenehmste Zeilenlänge ist, wenn nicht irgendwer dazwischenfunkt und manuelle Zeilenumbrüche reinklopft. Außerdem ist es ziemlich mühsam und es behindert den Lesefluss, wenn mittendrin ein Posting plötzlich eine andere Zeilenlänge hat.

              Kommentar


              • #8
                Zitat von mephisto111 Beitrag anzeigen
                Dass bedeutet,
                dass bei der Defaulteinstellung des Forums Zeilenlängen
                von mehr als 250 Zeichen herauskommen. Ich bin nicht sicher,
                ob dies wirklich Deiner Vorstellung von einer optimalen
                Zeilenlänge entspricht.
                Sein Browserfenster schmaler machen kann jeder der will, ein User-Stylesheet mit einer max-width verwenden auch.

                Jedes Mal beim Zitieren die verhackstückten Zeilen korrigieren zu müssen, damit nicht so ein Quark herauskommt wie hier zu sehen, macht keinen Spaß.

                Ich würde dich ebenfalls bitten, das zu lassen - und Umbrüche meiner Browserfensterbreite bzw. meinen Einstellungen zu überlassen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  OK neuer Versuch

                  PHP-Code:
                  echo '<form method="post" action="neu.php?neu=1&id='.$id.'">'
                  echo 
                  '</select><br><select class="text" name="ziel">';
                  mysql_connect("$host","$Benutzer","$Passwort"); 
                  mysql_select_db("$db");
                  $sql 'SELECT
                        ziel,
                        id,
                        session,
                        name
                        FROM
                        db1'
                  ;
                  $dat mysql_query($sql);
                  while (
                  $row $dat->fetch_assoc()) {
                  if (
                  $row['ziel'] = 1){
                  echo 
                  '<option value="'.$sick.'">'.$name.'</option>'
                  }
                  }


                  mysql_connect("$host","$Benutzer","$Passwort"); 
                  mysql_select_db("$db"); $sql 'SELECT
                         ziel,
                         id,
                         session,
                         name
                         FROM
                         db2'

                  $dat mysql_query($sql);
                  while (
                  $row $dat->fetch_assoc()) {
                  if (
                  $row['ziel'] = 1){
                  echo 
                  '<option value="'.$sick.'">'.$name.'</option>'
                  }

                  echo 
                  '</select>
                  <br>
                  <input class="submit" name="back" type="submit" id="back" value="goback">
                  </form>'

                  Vll. komme ich damit der Sache am nächsten
                  ich muss später wissen aus welcher db
                  der User gewählt hat db1 für true oder db2 für false.

                  Der User soll trozdem am Ende genau das vor Augen haben wie es jetzt ist.
                  jmd. ne idee ?

                  Kommentar


                  • #10
                    PHP-Code:
                    mysql_connect("$host","$Benutzer","$Passwort"); 
                    Variablen werden weder schöner, noch besser, wenn man sie zwischen Anführungszeichen stellt.
                    Wozu 2 mal Connect?

                    ich muss später wissen aus welcher db
                    der User gewählt hat db1 für true oder db2 für false.
                    Nicht DB, sondern Tabellen

                    Code:
                    SELECT ziel, id, session, name, 1 AS welchetabelle FROM  db1
                    UNION
                    SELECT ziel, id, session, name, 0 AS welchetabelle FROM  db2
                    *ungetestet*
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      Erstmal Danke fürs antworten und sry für die Anführungszeichen
                      hatte des schnell ausm Kopf geschrieben und dabei nicht dran gedacht xD

                      Der doppelte Connect ist an der stelle richtig. ^^
                      Da ich es nicht für relevant halte hab ich ja auch nich erklärt
                      das ich 2 verschiedene Connects mache.

                      Jedoch bin ich nicht sicher was mir das jetzt bringen soll :O
                      Wenn der User später das Formular absendet
                      weiß ich bei der Auswertung des Formulars immernoch nicht
                      ob das nu einer der Option Tags aus der while mit den Ergebnissen aus db1
                      oder db2 war.

                      Das prob ist ja das der User ja nicht die auswahl :
                      - entweder aus db1 ODER db2 bekommt
                      sondern
                      -das er die auswahl aus db1 UND db2 bekommt

                      Kommentar


                      • #12
                        Auch wenn du den UNION nicht verwendesn kannst, solltest du dir die beiden SQL Statements nochmal anschauen, denn da wird SEHRWOHL eine Unterscheidung zwischen den DBs/Tabellen gemacht.

                        PS:
                        Fantasiecode führt zu Verwirrung.
                        Wir werden alle sterben

                        Kommentar

                        Lädt...
                        X