Formular per PHP erzeugen (Script im Script)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formular per PHP erzeugen (Script im Script)

    Hallo zusammen,

    ich bin noch ein totaler Anfänger (wenn auch mit einigen Start-Erfolgen) und stehe nun vor einem Problem.

    Ich möchte ein Script schreiben, das wenn eine Bedingung erfüllt ist, ein Formular erzeugt. Dieses Formular soll ein SELECT-Feld enthalten, dessen Werte aus einer MySQL-Datenbank ausgelesen werden. Der dort ausgewählte Wert soll anschließend als Variable übergeben werden. Also sozusagen ein Script im Script.

    Mein Ansatz:

    PHP Code:
    if ($check) {

    //Verbindung herstellen
    $db = mysql_connect("localhost","root");
    mysql_select_db("artikel",$db);


    $result = mysql_query("SELECT * FROM stamm ORDER by ID",$db);

    echo '<form action="<?php $PHP_SELF ?>" method="get" target="">
    <p><select name="artnr" size="" onChange="submit()">
    <? while ($daten = mysql_fetch_array($result)) 
    {<option value="<?echo $daten[artnr]; ?>">
    <? echo $daten[artnr]; ?> - <? echo $daten[artbez]; ?></option>} ?></select></p></form>';
    }
    Ich vermute mal, dass ich wieder über irgendein Hochkomma oder ein Semikolon stolpere.

    Wer hat nen guten Tipp für mich?

    Danke Euch!!
    Last edited by thommy2006; 23-04-2006, 16:20.

  • #2
    bitte die regeln befolgen.

    Comment


    • #3
      Wenn Du mir jetzt noch sagst, wo ich welche Regeln hier finde, befolge ich die gern!

      Comment


      • #4
        sticky thread in diesem forum

        Comment


        • #5
          OK, ich versuche ja, lernfähig zu sein! - Ich hoffe, das geht nun besser so ...

          Wenn noch was falsch ist, sagt's mir ruhig ... ich gebe mir Mühe!

          Comment


          • #6
            der html-tag "option" muss mit einem echo ausgegeben werden.

            Comment


            • #7
              echo '<form action="<?php $PHP_SELF ?>" method="get" target="">
              Wie soll das funktionieren? Du gibst in einem echo-Befehl PHP-Tags aus, mehr nicht. Außerdem hast du den Semiklon am Schluss vergessen. Das müsste so heißen:
              <?php
              echo '<form action="' . $PHP_SELF . '" method="get" target="">
              <p><select name="artnr" size="" onChange="submit()">';
              ?>
              icedcream.de Webdesign Regensburg

              Comment


              • #8
                Danke für den Tipp!

                Bei mir sieht das Ganze nun so aus:

                PHP Code:
                if ($check) {

                //Verbindung herstellen
                $db = mysql_connect("localhost","root");
                mysql_select_db("artikel",$db);


                $result = mysql_query("SELECT * FROM stamm ORDER by ID",$db);

                echo '<form action="<?php $PHP_SELF ?>" method="get" target="">
                <p><select name="artnr" size="">
                <? while ($daten = mysql_fetch_array($result)) {';
                echo '<option value="<?echo $daten[artnr]; ?>">
                <? echo $daten[artnr]; ?> - <? echo $daten[artbez]; ?></option>';
                echo '} ?></select></p></form>';
                }

                ?>
                 {
                Leider ist der Effekt der Selbe ...

                Comment


                • #9
                  Außerdem würde ich statt "<?" "<?php" als Einleitung des PHP-Codes verwenden, weil der Code dann auch mit früheren Versionen kompatibel ist.

                  echo '<option value="<?echo $daten[artnr]; ?>">
                  Das geht auch nicht --> Siehe den Beitrag von mir oben!
                  Wenn du in einem echo-Befehl nochmal echo "blabla"; schreibst, wird nicht "blabla", sondern echo "blabla"; ausgegeben.

                  Und es fehlt das Semiklon und das abschließende >'<

                  Hier nochmal ein Link, den du dir vll. angucken solltest
                  http://de.php.net/manual/de/function.echo.php

                  Gruß
                  icecream
                  Last edited by icecream; 23-04-2006, 16:53.
                  icedcream.de Webdesign Regensburg

                  Comment


                  • #10
                    echo '<option value="<?echo $daten[artnr]; ?>">
                    <? echo $daten[artnr]; ?> - <? echo $daten[artbez]; ?></option>';

                    Da wird nichts substituiert, weil in hardquotes und das Verschachteln von echo im echo ist auch völlig daneben.

                    mit hardquotes und Punkten:
                    echo '<option value="' . $daten[artnr] . '">'
                    .$daten[artnr] .' - '. $daten[artbez] . '</option>';

                    mit softquotes und backslashes:
                    echo "<option value=\"$daten[artnr]\">
                    $daten[artnr] - $daten[artbez] </option>";

                    hardquotes ist besser, wenn Du noch htmlspecialchars($daten[artnr]) schreiben musst.

                    Comment


                    • #11
                      OffTopic:
                      Du könntest allerdings auch die Regeln befolgen und deinen Code in PHP Tags setzen, damit man das vernünftig lesen kann.
                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Comment


                      • #12
                        Du solltest auch im echo-Befehl wenn du HTML Tags einbaust, vor die " ein \ setzten, da sonst der echo-Befehl geschlossen wird.
                        What?! Wer bist du denn?

                        Comment


                        • #13
                          Problem gelöst!

                          Vielen Dank Euch allen! - Ich habe mit Eurer Hilfe das Problem gelöst!

                          Gruß thommy2006

                          Comment

                          Working...
                          X