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
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:17 Uhr.