Smarty + Formularübergabe

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

  • Smarty + Formularübergabe

    Hallo Community ich habe da etwas was mich heute den ganzen Tag im Kreis laufen lässt. Ich bin ja noch richtig Anfänger aber lege mich mächtig ins Zeug und bin auch bemüht Aber eine Formularübergabe will einfach nicht klappen.Es handet sich hier um eine Art Wicki oder Lexikon die ich zusammen bastel.

    Ich habe einen bösen Kreislauf und weiss nicht warum!

    Folgendes :

    Ich habe ein Formularseite wo ich Daten in meine DB eintragen möchte.Auf der selben Seite habe ich noch ein Formular "Ergo 2 Formulare auf einer Seite" womit der User Testen kann ob der Titel den er schreiben möchte schon in der DB vorhanden ist.

    Die Weiche funzt wunderbar.Nun möchte ich gern auf einer gesonderten TPL Seite "Auf der unten geposteten titel_ok.tpl" etwas anzeigen lassen wie:

    Der Titel "$FORMULARDATEEINGABE" ist leider schon vergeben!

    Das Formular "Ausschnitt aus der Seite"
    PHP-Code:
    <form action="eintrag_titel_pruefen.php" method="post">
                <
    input type=text size=36 name="titel">
                <
    input type=submit value="Prüfe">
                <
    input type=reset value="Reset">
                             </
    form

    Die eintrag_titel_pruefen.php

    PHP-Code:
    <?php
        
    include 'config/config.php';
        
            if(empty(
    $_POST['titel'])) 
            {
                  
    header ("Location: eintrag_fehlerhaft.php");EXIT;
            }
            
            
        
    $db_link mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS);
        
    // Datenbankname auswählen
        
    $db_name =  "php";

    // Wenn Datenbank nicht verfügbar
        
    if ( ! $db_link )
        die( 
    "Keine Verbindung zu MySQL" );
        
    mysql_select_db$db_name$db_link )
        or die ( 
    "Konnte $db_name nicht öffnen: ".mysql_error() );

    // Datensatz überprüfen auf Doppelte Einträge

        
    $sql "SELECT count(*) AS anzahl FROM lexikon WHERE titel = '".$_POST['titel']."'";
        
    $query mysql_query($sql);
        
    $row mysql_fetch_object($query);
        if(
    $row->anzahl 0)
                {
                
    // Wenn doppelter Datensatz vorhanden ist leite weiter nach
            
    header ("Location: eintrag_vorhanden.php");
                
        } 
                           else
            { 
        }


    include 
    'libs/Smarty.class.php';


    $tpl = new smarty;


    $tpl->display('titel_ok.tpl');

    ?>

    Bitte sehr um Hilfe damit ich das Problem aus der Welt schaffen kann herzlichen Dank! MfG Thomas
    Zuletzt geändert von escape; 23.05.2006, 17:48.

  • #2
    Na was genau funktioniert denn nicht?

    Vor dem display() noch das assign(), das dem Template die soeben geprüften Formulardaten übergibt, dann sollte es doch laufen.

    Nebenbei bemerkt ist es keine besonders gute Idee, für jeden Event (fehlende Formulardaten, Eintrag schon in DB) auf ein weiteres Script umzuleiten. Ein einziges Template bläht dein Projekt nicht unnütz auf und hält zusammen, was zusammen gehört:
    PHP-Code:
    if(empty($_POST['titel'])) {
        
    $message 'Nix eingegeben?';
    } else {
        
    // DB-Connect usw.
        
    if($row->anzahl 0) {
            
    $message 'Geht nicht, gibts schon!';
        } else {
            
    $message 'Passt scho';
        }
    }

    include 
    'libs/Smarty.class.php';
    $tpl = new Smarty;
    $tpl->assign('message'$message);
    $tpl->display('titel_check.tpl');

    ?> 

    Kommentar


    • #3
      Moar DANKE !!!!

      Es klappt wunderbar und das bei nur einer SEITE!!!

      Nun würde ich gern etwas faken *g*

      Der User gibt etwas im Formular ein.

      Die Abfrage ;

      |-Formular ist leer = "Abbruch" <---> "KLAPPT"
      |
      |-Formular Eintrag in DB vorhanden = "Hinweis" "KLAPPT"
      |
      |-WENN Formular Eintrag nicht in DB vorhanden
      |--
      |--Auto.Weiterleitung auf eine TPL Datein @ Preloader

      die Preloader Tpl kann ich realisieren und sie läuft schon ich bekomme mit
      PHP-Code:
      $message = ($_POST['titel']); 
      Die Eingabe des Formulars auch in der preloader tpl angezeigt!

      Nun der Knackpunkt ich habe den Preloader "der nur ne arbeitende Grafik ist" auf 5 sek gestellt mit einer automatischen Weiterleitung auf eine weitere TPL Datei die nun anzeigen soll.

      Hallo, der eingegebene{TITEL] oder {MESSAGE] ist noch frei du kannst deinen Eintrag mit dem {TITEL] oder {MESSAGE] machen.

      So nun kommt sicher die Frage warum so komplex ?

      Ja ich weiss mit der oben angegeben Hilfe läuft das Script ohne Preloader tadellos und macht keine Probs! Nur ich möchte gern auch etwas fürs Auge "auch wenn der Preloader keinen Sinn ergibt" haben und daher muss umbedingt so ein Loader da rin "

      Hoffentlich klingt das nicht zu komplex

      Ergo; ich möchte die {message} von einer Tpl in eine andere mitnehmen

      Nochmal recht herzlichen Dank für die Aufmerksamkeit zu diesem Thread


      Nebenbei bemerkt ist es keine besonders gute Idee, für jeden Event (fehlende Formulardaten, Eintrag schon in DB) auf ein weiteres Script umzuleiten. Ein einziges Template bläht dein Projekt nicht unnütz auf und hält zusammen, was zusammen gehört:
      Da stimme ich dir zu ! Ich werde es in Zukunft bei Abfragen so handhaben! Danke


      MfG Thomas

      Zuletzt geändert von escape; 24.05.2006, 01:18.

      Kommentar


      • #4
        Wenn du die Daten wirklich schon in einer "Bitte warten"-Seite hast und diese Seite sie dann an eine nächste weitergeben soll, dann machst du was falsch! Denn dann könntest du sie doch direkt anzeigen, statt den User zappeln zu lassen.

        Falls wirklich Wartezeiten entstehen, kannst du dir ja "was fürs Auge" einfallen lassen. Daten gibts dann aber noch keine, die man weiterleiten könnte.

        Kommentar

        Lädt...
        X