php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-09-2003, 13:10
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard Problem eines mehrseitigen Formulars ...

Hallo an alle.

Folgende Ausgangssituation:

Der Nutzer soll ein mehrseitiges Formular benutzen, um z.B. ein Angebot für einen Kunden zusammenzustellen (ähnlich der mehrseitigen Bestellung bei amazon.de). Dazu sieht er ein dreiseitiges Formular:

1. Seite: Kundenauswahl
--------------------------------------------------
Nichts großartiges, lediglich ein <select>-Feld, welches ihm erlaubt, den Kundennamen auszuwählen, der dieses Angebot erhalten wird. Per "weiter"-Button gelangt er auf die zweite Seite.

2. Seite: Angebot zusammenstellen
--------------------------------------------------
Der Nutzer sieht zuerst ein <select>-Feld, in welchem er eine Leistung (z.B. "Malerarbeiten") auswählt. Darunter sind mehrere Eingabefelder, die mit den Inhalten dieser Leistung (Leistungsbeschreibung, Einzelpreis etc.) gefüllt werden. Um diese Leistung in das Angebot aufnehmen zu können, soll auf auf einen "Übernehmen"-Button klicken. Diese Daten werden dann in die DB gesichert. Nach dem Sichern ist er immer noch auf Seite 2, nur, dass er diesmal oberhalb des <select>-Feldes sehen kann, welche Leistungen schon gesichert worden sind. Hat der Nutzer alle Leistungen, die dieses Angebot betreffen, angelegt, soll er nur noch auf "weiter" klicken und kommt dann zur 3. und letzten Seite.

3. Seite: Eingaben überprüfen
--------------------------------------------------
Auch nichts großartiges, lediglich eine erneute Auflistung aller vorher getätigen Eingaben mit dem "Wunsch", diese Eingabe zu bestätigen und mittels "Angebot sichern"-Button alles endgültig in der DB zu sichern.

Wie löse ich jetzt folgendes Problem?
Auf Seite 2 und 3 soll jeweils der Kundenname stehen. Dass ich diesen per Session weitergebe, dürfte sicher die beste Lösung sein. Was aber mache ich mit der "2. Seite"-Problematik (Nutzer klickt auf "Übernehmen" und bleibt solange auf Seite 2, bis er unten auf "weiter" klickt)? Am besten für alle 3 Formularseiten auch 3 PHP-Seiten anlegen?

Danke im Voraus

Innuendo

PS: Bitte keine Hinweise auf Tutorials a la "So programmierst Du mehrseite Formulare". Es geht mir eher darum, wie ich diese Seiten plane und nicht, wie ich sie erstelle.
Mit Zitat antworten
  #2 (permalink)  
Alt 01-09-2003, 13:12
schmalle
  Ich Root, Du nix
Links : Onlinestatus : schmalle ist offline
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
schmalle ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die einfachste lösung nennet sich session da kannste schön alles zwischenlagern, und am ende wieder zusammenbauen ...
__________________
h.a.n.d.
Schmalle

http://impressed.by
http://blog.schmalenberger.it



Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
... nur ohne :-)
Mit Zitat antworten
  #3 (permalink)  
Alt 01-09-2003, 13:15
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Nicht richtig gelesen? Es geht nicht um Sessions, sondern ob es sinnvoll ist, dieses mehrseitige Formular auf 3 PHP-Dateien zu verteilen statt eine Datei zu haben, wo dann mit switch() hin- und hergesprungen werden kann.
Mit Zitat antworten
  #4 (permalink)  
Alt 01-09-2003, 13:26
schmalle
  Ich Root, Du nix
Links : Onlinestatus : schmalle ist offline
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
schmalle ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, hab nur die ersten 3 zeilen gelesen
__________________
h.a.n.d.
Schmalle

http://impressed.by
http://blog.schmalenberger.it



Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
... nur ohne :-)
Mit Zitat antworten
  #5 (permalink)  
Alt 01-09-2003, 20:26
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Das beantwortet aber leider nicht meine Frage.
Mit Zitat antworten
  #6 (permalink)  
Alt 01-09-2003, 20:38
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

es ist ja ein formular, zwar mehrseitig, aber trotdem nur eins, also würd ich auch alle seitn in eine datei packen

eine datei == eine datei für den webserver
d.h.
PHP-Code:
//bestellung.php
<?php
$seiten
=array('customer','products','check');
$seite=(isset($_POST['seite']) and in_array(strtolower($_POST['seite']),$seiten) ? strtolower($_POST['seite']) : $seiten[0];
if (!
check_entries($seite))
  
//Seite nochmal aufrufen, Skript beenden
include $seite.'.inc.php';
?>
so
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 02-09-2003, 08:09
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Sehr interessanter Ansatz.

Aber wie könnte man das "2. Seite"-Problem lösen:
Der Nutzer wählt eine Leistung aus, klickt auf Übernehmen (KEIN submit-Button),
die Daten werden in die Datenbank geschrieben und er landet wieder auf der gleichen Seite.

Habe mir überlegt, dass man es vielleicht so machen könnte:

PHP-Code:
<?
 
switch($do)
 {
  default: 
// Erstmaliges Aufrufen der Seite
   
?>
   <form method="post" action="<?=$PHP_SELF;?>?do=saveentries">
     bla bla bla // Zeige die <select>-Box und die zu füllenden Eingabefelder
   </form>
   <?
   
break;

  case(
'saveentries'):
   
$sql "INSERT INTO ..."// Hier Sichern der Daten in die Datenbank
   
?>
   <table ...> // Zeige hier die Tabelle mit den schon gesicherten Daten
   <form method="post" action="<?=$PHP_SELF;?>?do=saveentries">
    <select ...> // Zeige die <select>-Box und die Felder erneut
   </form>
   <?
   
break;
 }
?>
Kommt der Nutzer also zum ersten Mal auf diese Seite (Fall "default"), so sieht er lediglich das Auswahlfeld und die Eingabefelder. Er wählt aus der <select>-Box aus, die Felder füllen sich entsprechend und dann klickt er auf "Übernehmen" (kein submit-Button, sondern wahrscheinlich eine onSubmit-Anweisung in dem <a href="...">-Link). Er landet beim Fall "saveentries", die Daten werden gesichert, die Tabelle der schon gesicherten Daten wird gezeigt und darunter das Formular erneut.

Wäre das die richtige Herangehensweise? Ich will einfach vermeiden, dass der Nutzer nach dem Sichern auf eine Seite umgeleitet wird, wo dann steht "Daten erfolgreich gesichert" inkl. einem "zurück"-Link, um neue Datensätze zu sichern.
Mit Zitat antworten
  #8 (permalink)  
Alt 02-09-2003, 09:37
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Code:
<form action="bestellung.php">

  <input type="submit" name="addentry" value="Übernehmen" />
  <input type="submit" name="page3" value="Weiter" />

</form>
PHP-Code:
if (isset($_POST['addentry']))
  echo 
'Neuer Artikel hinzugefügt';
elseif (isset(
$_POST['page3']))
  echo 
'Weiter zu Seite 3'
oder gibt's nen speziellen grund, aus dem du keinen submit-button nehmen willst?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 02-09-2003, 09:55
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Ein submit-Button ist vorhanden, und zwar am Ende der Seite. Dieser Button leitet den Nutzer zur 3. Seite weiter. Das Übernehmen der Daten in die Datenbank soll aber nicht über diesen submit-Button funktionieren, sondern durch einen normalen <a>-Link, der per "onSubmit" dem Formular sagt: "So, jetzt kannst Du die Sachen in die DB schreiben."

Ich möchte einfach erreichen, dass der Nutzer, nachdem der Datensatz gesichert worden ist, nicht auf einer weiteren Seite landet, sondern immer wieder auf der gleichen Seite landet, bis er schlussendlich auf den <submit>-Button (also beispielsweise "weiter zum 3. Schritt") am Ende der Seite klickt.
Mit Zitat antworten
  #10 (permalink)  
Alt 02-09-2003, 09:58
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

ich versteh immer noch nicht so ganz, warum du die datenübernahme nicht auch über nen submit-button regeln willst, inuitiver wär's meiner meinung nach schon
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #11 (permalink)  
Alt 02-09-2003, 10:10
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Noch einmal Punkt für Punkt, wie es sein soll:

1. Der Nutzer kommt auf die Seite.
2. Er sieht ein Eingabefeld, daneben ein "Übernehmen"-Button und darunter einen Button, der mit "Weiter" betitelt ist.
3. Er schreibt in das Eingabefeld etwas rein und klickt auf "Übernehmen".
4. Er liest oben den Satz "Daten erfolgreich gesichert", darunter folgt die Ausgabe des eben gesicherten Datensatzes und darunter sieht er das oben genannte Eingabefeld (inkl. "Übernehmen"-Button) erneut.
5. Der Nutzer wiederholt den Schritt 3 mehrere Male und sieht die Folgen seines Tuns in Schritt 4.
6. Der Nutzer hat alle Eingabe getätigt und klickt auf den "Weiter"-Button, um zur nächsten Seite zu gelangen.

Die Frage ist jetzt einfach: Wie löst man es am besten, dass der Nutzer sich, nachdem er auf "Übernehmen" geklickt hat und die Daten gesichert wurden, immer noch auf derselben Seite befindet? Ich möchte einfach eine zusätzliche Seite, wo eh nur "Daten erfolgreich gesichert. zurück zur Eingabe" stehen würde, vermeiden.
Mit Zitat antworten
  #12 (permalink)  
Alt 02-09-2003, 10:12
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von mrhappiness
Code:
<form action="bestellung.php">

  <input type="submit" name="addentry" value="Übernehmen" />
  <input type="submit" name="page3" value="Weiter" />

</form>
PHP-Code:
if (isset($_POST['addentry']))
  echo 
'Neuer Artikel hinzugefügt';
elseif (isset(
$_POST['page3']))
  echo 
'Weiter zu Seite 3'
da hast du deine zwei buttons und ne methode wie du das abfragen kannst, was fehlt dir denn noch?

die hinzugefügten daten kannst du entweder in ner session speichern oder in ner datenbank oder in textdateien oder oder oder
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #13 (permalink)  
Alt 02-09-2003, 10:20
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Soll ich das dann so machen?

PHP-Code:
if (!isset($_POST['addentry']) AND !isset($_POST['page3']))
{
  ... 
// Seite wird das erste Mal besucht
  
... // Zeige das Eingabeformular inklusive der beiden Buttons
}

if (isset(
$_POST['addentry']))
{
  ... 
// Der Nutzer hat einen Eintrag hinzugefügt
  
... // Schreibe, dass der Datensatz hinzugefügt wurde
  
... // Lies alles aus und zeig's in einer Tabelle
  
... // Zeige darunter das Eingabeformular inklusive der beiden Buttons
}

elseif (isset(
$_POST['page3']))
{
  ... 
// [b]Wie löse ich hier die Weiterleitung zur nächsten Seite?[/b]

Mit Zitat antworten
  #14 (permalink)  
Alt 02-09-2003, 10:29
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von Innuendo
Soll ich das dann so machen?
nein

wenn du es so machst, dass du immer die bestellung.php aufrufst, machst du auf formular 1 nen submit-button, auf formular 2 2stück und auf formular 3 wieder eins (beispielhaft)
Code:
Formular 1
<form action="bestellung.php">
  <input type="submit" name="page2" value="Zu Seite 2" />
</form>

Formular 2
<form action="bestellung.php">
  <input type="submit" name="addentry" value="Artikel hinzufügen" />
  <input type="submit" name="page3" value="Zu Seite 3">
</form>

Formular 1
<form action="bestellung.php">
  <input type="submit" name="ende" value="tutto completti" />
</form>
PHP-Code:
//bestellung.php
if (isset($_POST['page2'] or isset($_POST['addentry']))
  include 
'formular2.php';
elseif (isset(
$_POST['page3']))
  include 
'formular3.php';
else
  include 
'formular1.php';

//formular2.php
if (isset($_POST['addentry']))
  
add_entry($_POST); //beispielhaft, halt irgendwie die daten hinzufügen
get_entries();
display_entries(); 
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #15 (permalink)  
Alt 02-09-2003, 10:50
Innuendo
 Guest
Innuendo
Beiträge: n/a
Standard

Danke.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:28 Uhr.