Smarty Problem

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

  • Smarty Problem

    PHP-Code:
    <?php
        
    include("includes/config.php");
        require(
    "smarty/Smarty.class.php");
        
        
    mysql_connect($db_host$db_user$db_pass) OR die(mysql_error());
        
    mysql_select_db("bautzenchat");
        
        
    $sql "SELECT id, feldname FROM test ORDER BY id";
        
    $result mysql_query($sql) OR die(mysql_error());
        
        
    $smarty = new Smarty;
        if (
    mysql_num_rows($result)OR die(mysql_error())) {
            while (
    $row mysql_fetch_assoc($result)Or die(mysql_error())) {
                
    $smarty->assign($row['feldname'], "<input type=\"text\" name=\"".$row['feldname']."\" /><br />");
            }
        }
        
    $smarty->display("index2.html");
    ?>
    mh wiso klappt es nicht das ich die inputfelder im html template auslesen kann?
    es wird nix angezeigt.

    bitte um hilfe sorry kanns schlecht beschreiben

    danke im vorraus

  • #2
    Re: Smarty Problem

    Original geschrieben von sebastian343
    mh wiso klappt es nicht das ich die inputfelder im html template auslesen kann?
    es wird nix angezeigt.
    super fehlerbeschreibung.

    wie sieht das template aus?

    wie sieht das ausgefüllte template aus?

    Original geschrieben von sebastian343
    bitte um hilfe sorry kanns schlecht beschreiben
    dann solltest du es auch mal versuchen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      ja also ich möchte in der schleife die variablen von smarty, mit den namen feldname aus der datenbank z.B test1 und test2 mit dem inputfeld füllen um ein dynamisches formular zu erzeugen welches ich über den Browser ändern kann. Jedoch füllt Smarty die Variablen nicht und es wird nichts ausgegeben obwohl ich in meinem html template {$test1} und {$test2} eingefügt habe.

      Gibt es evtl. noch ein anderen Lösungsweg um ein dynamisches Formular zu generieren, jedoch auch mit smarty damit man die platzhalter an verschiedenen Stellen im html template setzen kann.

      Kommentar


      • #4
        Re: Re: Smarty Problem

        Original geschrieben von Abraxax
        wie sieht das template aus?

        wie sieht das ausgefüllte template aus?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Code:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <html>
          <head>
          <title>TITLE</title>
          <link rel="stylesheet" type="text/css" href="style.css">
          </head>
          <body>
          {$test1}
          {$test2}
          </body>
          </html>

          Kommentar


          • #6
            Re: Re: Smarty Problem

            Original geschrieben von Abraxax
            wie sieht das ausgefüllte template aus?
            muss ich dir eigentlich alles aus der nase ziehen?

            mache auch einfach mal ein echo und verzichte zum test auf smarty!
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              also mit echo klappt es da habe ich schon getestet edoch irgendwie nicht mit smarty wieso auch immer was meinst du mit ausgefüllten template ist doch das html templater nicht war das habe ich doch schon gepostet.

              Kommentar


              • #8
                Schalt doch einmal die debug funktion von smarty ein:
                PHP-Code:
                $smarty->debugging true
                Beim aufruf der Seite bekommst du dann noch n schönes Fenster mit sämtlichen Variablen die der Parser verwendet...

                Was woll eig. am Ende entstehen?


                Bye!

                Kommentar


                • #9
                  Übrigens...

                  Wenn du schon n Template System verwendest solltest du den HTML Code aus dem PHP entfernen...

                  Ungefähr so:

                  Template
                  <input type="text" name="{$test1}"/><br />

                  PHP
                  $smarty->assign($row['feldname'], $row['feldname']);


                  Bye!

                  Kommentar


                  • #10
                    PHP-Code:
                    <?php
                        
                    include("includes/config.php");
                        require(
                    "smarty/Smarty.class.php");

                        
                    mysql_connect($db_host$db_user$db_pass) OR die(mysql_error());
                        
                    mysql_select_db("bautzenchat");
                        
                        
                    $sql "SELECT id, feldname FROM test ORDER BY id";
                        
                    $result mysql_query($sql) OR die(mysql_error());
                        
                        
                    $smarty = new Smarty;
                        
                    $smarty->debugging true;
                        if (
                    mysql_num_rows($result) OR die(mysql_error())) {
                            while (
                    $row mysql_fetch_assoc($result) OR die(mysql_error())) {
                                
                    $smarty->assign($row['feldname'], "<input type=\"text\" name=\"".$row['feldname']."\" /><br />");
                            }
                        }
                        
                    $smarty->display("index2.html");
                    ?>
                    am ende sollen die inputfelder per smarty platzhalter in das html template eingebunden werden können also das ich nachher die inputfelder habe

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php
                          
                      include("includes/config.php");
                          require(
                      "smarty/Smarty.class.php");

                          
                      mysql_connect($db_host$db_user$db_pass) OR die(mysql_error());
                          
                      mysql_select_db("bautzenchat");
                          
                          
                      $sql "SELECT id, feldname FROM test ORDER BY id";
                          
                      $result mysql_query($sql) OR die(mysql_error());
                          
                          
                      $smarty = new Smarty;
                          
                      $smarty->debugging true;
                          if (
                      mysql_num_rows($result) OR die(mysql_error())) {
                              while (
                      $row mysql_fetch_assoc($result) OR die(mysql_error())) {
                                  
                      $smarty->assign($row['feldname'], "<input type=\"text\" name=\"".$row['feldname']."\" /><br />");
                              }
                          }
                          
                      $smarty->display("index2.html");
                      ?>
                      am ende sollen die inputfelder per smarty platzhalter in das html template eingebunden werden können also das ich nachher die inputfelder habe

                      ach klappt nicht bekomme kein debug fenster

                      Kommentar


                      • #12
                        Hast du irgend ein Tool laufen was Popup fenster blockiert?

                        Welche Smarty Version hast du?


                        Bye!

                        Kommentar


                        • #13
                          ne also das soll so einfach wie mgl seind eswegen soll man das inputfeld nur mit {$test1} einfügen können

                          Kommentar


                          • #14
                            Also wenn ich dich richtig verstanden habe willst du für jede Zeile in der Tabelle test automatisch ein Textfeld anzeigen welches den Name aus der Spalte "feldname" bezieht. Richtig?

                            Wenn dem so ist liegst du mit der Umsetzung schon im Ansatz falsch... Denn so wie dein Code momentan aussieht müsstest du für jede neue Zeile in der Tabelle eine neue Variable im Template einführen...

                            Du müsstest also an smarty ein array übergeben und dieses dann im Template mittels einer Schleife auswerten, also ein Textfeld generieren.


                            Bye!

                            Kommentar


                            • #15
                              dann ist der ansatz richtig da jedes textfeld eine eigene variable bekommen soll

                              Kommentar

                              Lädt...
                              X