zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Button soll nach Absenden des Formulars erscheinen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 10.02.2010, 19:35
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.01.2010
Beiträge: 20
gini0_8 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Button soll nach Absenden des Formulars erscheinen

Hallo zusammen,
auf meiner Seite Handy-Ankauf füllt mann ein Formular aus.
Nach dem Absenden des Formulars wird die Seite neu geladen und es erscheint oben ein Satz: Vielen Dank für Ihre Anfrage, wir werden Sie umgehend bearbeiten und uns mit Ihnen in Verbindung setzen!
Das klappt.
Nun soll darunter ein Button erscheinen der den Kunden zu dem Online-Shop leitet.
Ich hab schon einiges probiert allerdings funzt nichts
Vielleicht hat ja jemand ne Idee.
Hier der Code der mir den Satz nach dem Absenden anzeigt.
Code:
#Alle Felder sind OK
$okay = 'Vielen Dank für Ihre Anfrage, wir werden Sie umgehend bearbeiten und uns mit Ihnen in Verbindung setzen!<br /><br />';

$meldung=$okay;
  
		    } else {
		    $meldung=$message;
		    }
    #######################################
    #######################################
	} //endissetsubmit
  else{$meldung='';}
PHP-Code:
<tr><td colspan="2" font style="red"><?php echo $meldung?></td></tr>
Ich danke Euch
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 10.02.2010, 19:50
Programmierer
neuer user
 
Registriert seit: 21.05.2009
Beiträge: 26
FrankW. befindet sich auf einem aufstrebenden Ast
Standard

Also da gibt es etliche Wege...
Auf jeden Fall brauchst du einen Submit-Button im Form-Tag.

Code:
<input type="submit" value="Absenden" />
Wenn du die gesendeten Informationen in der selben Datei prüfen willst lässt du das action="" im Form-Tag leer oder aber überprüfst ob der Pfad genau auf deine Datei zeigt. Denn action="" leitet dich zur definierten Datei weiter nach dem klicken auf den submit-Button.

So und dann gibt es etliche Wege...
z.B ein einfacher Weg:

Du prüfst sobald ein $_POST erfolgt ist -> also nach dem Auswerten der ganzen Daten ob alles passt, und wenn dem so ist leitest du den User weiter mit

Code:
header('location: handy_send.html')
und in der weitergeleiteten Datei ist die Definition deiner Meldung.... Nachteil: wir bräuchten eine weitere Datei...

oder aber was sich auch anbietet, setzt das Formular komplett in einen string, deine Nachricht mit "erfolgreich abgeschickt" auch, und allgemein gibst du im body ein <?php echo $handy_content; ?> aus -> der String enthält den momentanen Content, das kann das Formular sein oder deine Meldung -> sobald ein $_POST erfolgt weißt du eben dem String $handy_content deine Meldung da zu -> somit ist das Formular-Feld weg (oder nur Teile, je nach dem wie du den String verkettest) und deine Meldung da.

Gebe aber auch andere Möglichkeiten... ich hoffe das war verständlich, sonst bitte nochmal nachfragen

Edit: Ah ich seh du gibst die Meldung schon in einem String aus, ok dann fehlt dir nur noch der submit-Button?
__________________
Webprojekte sind momentan in der Überarbeitung.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 11.02.2010, 12:38
Benutzer
neuer user
 
Registriert seit: 01.02.2010
Ort: Berlin
Beiträge: 49
webdecker wird schon bald berühmt werden
Standard

Zitat:
Zitat von gini0_8 Beitrag anzeigen
...
Nach dem Absenden des Formulars wird die Seite neu geladen und es erscheint oben ein Satz: Vielen Dank für Ihre Anfrage, wir werden Sie umgehend bearbeiten und uns mit Ihnen in Verbindung setzen!
Das klappt.
Nun soll darunter ein Button erscheinen der den Kunden zu dem Online-Shop leitet....
Bin mir nicht sicher, warum es unbedingt ein Button sein soll, ein Link tut's sicher auch. Wie der FrankW sagte, ist ein redirect auch schön, aber dann erhält der User ja keine Bestätigung, die immer ganz nett ist. Ich würde auf Deiner Seite bei Erfolg den Rest des Formulars ausblenden, sonst ist das verwirrend.

Code Beispiel:

PHP-Code:
<?php
$success 
''// Success message if success
$error '';   // Error message if error
if (isset($_POST['submit'])) {
    
// Ok, got a submit, go on with validation...
    
if (!isset($_POST['frage'])) {
        
$error 'Bitte die Frage beantworten.';
    } else {
        
$success 'Alles super!';
        
// Or redirect user immediately to the shop page...
        /*
        header('Location: /shop.html');
        return;
        */
    
}    
}
?>
<html>
    <head>
        <title>Ankauf...</title>
    </head>
    <body>
        <?php if (!$success): ?>
        
            <?php if ($error): ?>
                <div style = "color:#F00;"><?php echo $error ?></div>            
            <?php endif ?>
            
            <form action="" method="POST">
                <fieldset>
                    <div>
                        <input type="radio" name="frage" id="frage_1" value="1" />
                        <label for="frage_1">Option 1</label>
                    </div>
                    <div>
                        <input type="radio" name="frage" id="frage_2" value="2" />
                        <label for="frage_2">Option 2</label>
                    </div>
                    <div>
                        <input type="submit" name="submit" value="Absenden" />
                    </div>
                </fieldset>
            </form> 
            
        <?php else: ?>
        
            <div style="color: #0F0;"><?php echo $success ?></div>
            <a href="/shop.html">Zum Shop</a>  
            <div>
                Oder hier ein form-Tag mit Button und so, aber für 
                eine einfache Weiterleitung braucht man das ja nicht.            
            </div>
        <?php endif ?>
        
    </body>
</html>
Mit Zitat antworten
  #4 (permalink)  
Alt 11.02.2010, 13:37
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.01.2010
Beiträge: 20
gini0_8 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Puh schwere Kost
den Button Absenden hab ich ja.
Ich habe mir sowas gedacht.
Natürlich reicht auch ein fetter Link unter der bestätigungsmeldung.
Alle Felder sind korrekt ausgefüllt gewesen und das Formular wurde abgeschickt:
Code:
#Alle Felder sind OK
$okay = 'Vielen Dank für Ihre Anfrage, wir werden Sie umgehend bearbeiten und uns mit Ihnen in Verbindung setzen!<br /><br />';

$link ='Hier geht es zu unseren Online-Shop.'
Dank diesem Gerät wird ja momentan nur $okay ausgegeben
Code:
$meldung=$okay;
  
		    } else {
		    $meldung=$message;
		    }
    #######################################
    #######################################
	} //endissetsubmit
  else{$meldung='';}
Also dacht ich jetzt das ich $okay und $link zu eins zusammenfüge, meinetwegen $zusammen, und dann ausgebe
Code:
$meldung=$zusammen;
  
		    } else {
		    $meldung=$message;
		    }
    #######################################
    #######################################
	} //endissetsubmit
  else{$meldung='';}
Und hier gebe ich es dann aus:
Code:
<tr><td colspan="2" font style="red"><?php echo $meldung; ?></td></tr>
Funktioniert das denn nicht?

Das restliche Formular ausblenden ist ne super idee.
Momentan werden nur alle Felder resettet.

Code:
<?php


// E-Mailadresse
$ihre_emailadresse = "anforderung@tecmall.de";

// Absender || Muster(From: NAME <EMAIL>) // Beispiel: 'From: Max Mustermann <max@musterdomain.tld>'
$email_absender = 'From: Handy-Ankauf <www.tecmall.de>';

// Betreff
$email_betreffzeile = 'Handy-Ankauf';



// Hinweismeldungen

#Nicht alle Felder ausgefüllt
$errormessage[0] = 'Fehler, Ihre EMail konnte nicht abgeschickt werden, da Sie nicht alle Felder ausgefüllt haben:';
#Kein Name eingegeben
$errormessage[1] = '<br />- Ungültiger Name';
#Kein Vorname eingegeben
$errormessage[2] = '<br />- Ungültiger Vorname';
#Keine Strasse eingegeben
$errormessage[3] = '<br />- Ungültige Strasse';
#Keine PLZ eingegeben
$errormessage[4] = '<br />- Ungültige PLZ';
#Kein Ort eingegeben
$errormessage[7] = '<br />- Ungültiger Ort';
#Ungültige E-Mailadresse eingegeben
$errormessage[8] = '<br />- Ungültiger E-Mailadresse';
#Ungültiger Sicherheitscode
$errormessage[5] = '<br />- Ungültiger Sicherheitscode';
#Ungültiger Zeichen (Spamverdacht)
$errormessage[6] = '<br />- Ungültige Zeichen entdeckt';
#Sie müssen mit den AGB´s einverstanden sein!
$errormessage[9] = '<br />- Sie müssen mit den AGB´s einverstanden sein!';

#Alle Felder sind OK
$okay = 'Vielen Dank für Ihre Anfrage, wir werden Sie umgehend bearbeiten und uns mit Ihnen in Verbindung setzen!<br /><br />';




// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


    #######################################
    session_start();
    #######################################


	  if(isset($_POST['submit'])) {
    #######################################

	  $Hersteller = check($_POST['Hersteller']);
	  $modell =     check($_POST['modell']);
	  $zubehoer =   check($_POST['zubehoer']);
	  $andere =     check($_POST['andere']);
	  $stand =      check($_POST['stand']);
	  $sonstiges =  check($_POST['sonstiges']);
	  $preis1 =     check($_POST['preis1']);
	  $preis2 =     check($_POST['preis2']);
	  $name =       check($_POST['name']);
	  $vorname =    check($_POST['vorname']);
	  $strasse =    check($_POST['strasse']);
	  $plz =        check($_POST['plz']);
 	  $ort =        check($_POST['ort']);
	  $email =      check($_POST['email']);
	  $agb =        check($_POST['agb']);

    #######################################

		$ip = $_SERVER['REMOTE_ADDR'];
		$host = gethostbyaddr($ip);

    #######################################

		$zeit = time();
		$datum = date ("d.m.Y", $zeit);
		$uhrzeit = date ("H:i:s", $zeit);

    #######################################

		$message = '<span style="color:red">' . $errormessage[0];
		
    if($name==''){$message .= $errormessage[1]; $fehler = 1;}

    if($vorname==''){$message .= $errormessage[2]; $fehler = 1;}

    if($strasse==''){$message .= $errormessage[3]; $fehler = 1;}
   
    if($plz==''){$message .= $errormessage[4]; $fehler = 1;}

    if($ort==''){$message .= $errormessage[7]; $fehler = 1;}
		
    if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,6})$", $email)) {
			$message .= $errormessage[8]; $fehler = 1;}

    if($agb==''){$message .= $errormessage[9]; $fehler = 1;}

		#######################################

    #######################################
$zubehoer = '';                      // der string
$myArray = $_POST['zu'];

for($counter = 0; $counter < sizeof($myArray); $counter++)
{
        $zubehoer .= $myArray[$counter];   // ankettung an den string -> .= ist die Kurzfassung
        $zubehoer .= "\n";
}

$stand = '';                      // der string
$myArray = $_POST['stand'];

for($counter = 0; $counter < sizeof($myArray); $counter++)
{
        $stand .= $myArray[$counter];   // ankettung an den string -> .= ist die Kurzfassung
        $stand .= "\n";
}




        if(!isset($fehler)){
			
        $email_nachricht  = "-- Handy-Ankauf --";
        $email_nachricht .= "\nName: $name\nVorname: $vorname\nStrasse: $strasse\nPLZ: $plz\nOrt: $ort\nE-Mailadresse: $email\n\n";
        $email_nachricht .= "\nHersteller: $Hersteller";
	$email_nachricht .= "\nModell: $modell\n\n";
	$email_nachricht .= "\nZubeh'&Ouml;'r: \n$zubehoer\nAndere: $andere\n\n";
	$email_nachricht .= "\nZustand: $stand\nSonstiges: $sonstiges\n\n";
        $email_nachricht .= "\nPreisvorstellung: $preis1'&nbsp;'bis $preis2\n\n";
	$email_nachricht .= "\nAGB: $agb\n\n";	
	$email_nachricht .= "gesendet am $datum um $uhrzeit.";
			 
        // Mail senden
        @mail($ihre_emailadresse, $email_betreffzeile, $email_nachricht, $email_absender);
			
        //Variablen resetten
                          $Hersteller = '';
			  $modell     = '';
			  $zu         = '';
			  $andere     = '';
			  $sonstiges  = '';
		          $preis1     = '';
			  $preis2     = '';
			  $agb        = '';
			  $name       = '';
			  $vorname    = '';
			  $strasse    = '';
			  $plz        = '';
			  $ort        = '';
			  $email      = '';
			  $agb        = '';
			  
			
        $meldung=$okay;
  
		    } else {
		    $meldung=$message;
		    }
    #######################################
    #######################################
	} //endissetsubmit
  else{$meldung='';}


?>

Geändert von gini0_8 (11.02.2010 um 13:45 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 11.02.2010, 16:30
Benutzer
neuer user
 
Registriert seit: 01.02.2010
Ort: Berlin
Beiträge: 49
webdecker wird schon bald berühmt werden
Standard

Dein Code ist schwer lesbar durch die verschiedenen Einrückungen und die Länge.

Ich habe den Beispielcode oben gepostet, um eine mögliche Struktur des PHP-Skripts zu zeigen.

An Deiner Stelle würde ich Deinen Code noch mal neu machen: Du beginnst mit der wesentlichen Struktur (vgl. mein Beispiel oben, z.B. erst mal nur eine Radio-Button-Liste), und prüfst, ob der Prozess an sich funktioniert. Schritt für Schritt baust Du dann den Rest des komplexen Formulars und der Validierung ein.
Dabei bietet sich an, die Eingabe-Validierung in Funktionen auszulagern, so bleibt der wesentliche (Prozess-) Code übersichtlich.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nach absenden des Formulars zerspringt Layout img Serveradministration und serverseitige Scripte 15 03.06.2008 15:13
Wertzuweisung von Textfeldern + Versand des Formulars Gsicht Javascript & Ajax 3 09.05.2007 21:55
Zeilenüberlappung bei margin-top mit negativem Wert c.weber.os CSS 15 15.10.2005 16:11
des hundes hexenküche derHund http://csskueche.xhtmlforum.de/ 10 19.05.2005 23:56
Ratschläge bei Publizierung eines fertigen Layouts gesucht Black Fladder CSS 55 05.09.2004 15:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33 Uhr.