![]() |
|
Kein Boot Hier kann man allgemeinen Small Talk halten. Es muß ja nicht immer um Boote gehen. |
![]() |
|
Themen-Optionen |
#1
|
|||
|
|||
![]()
Hallo Leute,
ich arbeite hier an einem für mich echten Problem. Folgendes soll generiert werden: Wenn ich in einer Maske eine Artikelnummer eingebe, dann soll z.B. in den dahinterliegenden Feldern der Artikelname, der Artikelpreis angezeigt werden. Irgendwie kriege ich die Abfrage nicht generiert. Ich bekomme einfach die Abfrage nicht auf die Reihe. Hilfe! ![]() ![]() Dieses Formular soll in der Page www.dentalteamnord.de als Service angeboten werden, so das Kunden Ihre Artikel direkt bestellen können, ohne sich durch den gesamten Webstore zu klicken. Wenn Ihr die Datenbankstruktur von mir braucht, gebe ich diese gerne per Mail preis. |
#2
|
||||
|
||||
![]()
Wenn du meinst mit abschicken und so als Formular oder eher ohne Verbindungsaufbau zum Server.
WO liegt den dein Problem? Ein Code:
"select from Artikel where Artikel_Nr=".$_POST['Artikel_Nr']." LIMIT 1" Bernd
__________________
Euer boote-forum.de Admin Bernd |
#3
|
|||
|
|||
![]()
Hallo Bernd,
ich habe zwar eine Lösung gefunden wie ich z.B. einen Artikel per Nummer direkt in den Warenkorb übergeben kann. Hier kommt der Code: Datei 1 (Diese kann in die Seite eingebaut werden) Code:
<tr> <td valign="top" class="content" colspan="2"> <table border="0" cellpadding="0" cellspacing="0"> <form action="direct_order_check.php" method="POST"> <tr> <td class="content">Art-Nr.: </td> <td class="content" colspan="2"> <input type="text" name="number" size=12 value="<? echo $number ?>" ></td> </tr> <tr> <td class="content">Menge: </td> <td class="content"> <input type="text" name="saArticle[quantity]" size=2 value="1" ></td> <input type="hidden" name="VID" value="<? echo $VID ?>"> <td class="content"><input type="image" border=0 alt="Artikel in den Warenkorb legen" name="Add2Basket" src="<?php echo $cfgTplPath ?>/images/to_basket_green.gif"></td></tr> </form> </table> </td> </tr> Code:
<?php include ("inc/load_csc.inc.php"); include ("inc/cfg_sql.inc.php"); include ("$cfgTplPath/csc_head.tpl"); include ("$cfgTplPath/csc_body.tpl"); if ($cfgUseFrames == "0" && $cfgBasketWindow == "0") { include ("$cfgTplPath/csc_navigation.tpl"); } ?> <table border="0" cellpadding="1" cellspacing="0" align="center" width="98%"> <tr> <td valign="top" class="content" colspan="6"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td >[img]<?php echo $cfgTplPath ?>/images/header_links.gif[/img]</td> <td width="100%" class="topic" align="middle" > Direktes Bestellen[/b] <td >[img]<?php echo $cfgTplPath ?>/images/header_rechts.gif[/img]</td> </tr> </table> <table border="0" cellpadding="3" cellspacing="0" width="100%" class="outline"> <tr><td class="text"> <?php $connectionID = OpenDatabase (); $result = @mysql_query("select id from $cfgTabArticle where product_number='$number'",$connectionID); $saArticle["ID"] = @mysql_result($result,0); if ($saArticle["ID"]) { $saArticle_query = @mysql_query("select flag_display, price_a from $cfgTabArticle where id = '$saArticle[ID]'",$connectionID); $row = @mysql_fetch_array($saArticle_query); $flag_display = $row['flag_display']; $saArticle["price"] = $row['price_a']; if ($flag_display == 1) { AddArticleToBasket($VID,$saArticle); echo "Der Artikel wurde in den Warenkorb gelegt"; } else { echo "Fehler, diesen Artikel haben wir vorerst aus unserem Sortiment genommen!!"; } } else { echo "Fehler, diese Artikelnummer Existiert nicht."; } ?> </td></tr> </table> </td></tr> </table> <?php include ("$cfgTplPath/csc_footer.tpl"); ?> Mir schwebt ein Formular vor, respektive ich bin daran am arbeiten, so das ich im ersten Feld die Artikelnummer eingebe und nach Bestätigung per Button die Artikelbeschreibung und den Preis angezeigt bekomme, so das dieses komplette Formular später an den Warenkorb übergeben werden kann. Ich kämpfe schon ein paar Tage an diesem Problem...... Bin noch nicht so wirklich gut in PHP, lerne aber täglich dazu...... |
#4
|
||||
|
||||
![]()
Kann das sein, daß Dein Apache keine Short-Tags beherrscht?
Dann sollte statt des kurzen <? echo... immer <?php echo... stehen... ![]() edit: nee, doch nicht... habe mir den Quelltext der Seite angesehen, da scheint es ja zu funzen Code:
<td valign="top" class="content"> <form action="csc_basket.php" method="POST"> <input type="Text" name="saArticle[quantity]" size="3" maxlength="3" value="1"> <input type="hidden" name="saArticle[ID]" value="106"> <input type="hidden" name="VID" value="Z434K58J7Jc7X20n"> </td> |
#5
|
||||
|
||||
![]() Zitat:
Und Tom: lös Dich mal von dem Gedanken, dass Du ein PHP-Problem hat. Mach Dir mal zuerst Gedanken, wie eigentlich die Kommunikation zwischen Client (User) und Server funktioniert (so was wie ein Datenflußplan). Dann mach Dir Gedanken, wie ein Programm das abbilden könnte (Programmablaufplan) Auch das noch ohne eine Zeile Code zu programieren, nur verbal. Das formulierst Du dann immer feiner aus. Zum Schluß erst setzt Du das in PHP um. Wenn 1 und 2 sauber gelauifen sind, kann das in jede Scriptsprache umgesetzt werden. Das ist quasi "übersetzen". Heißt in diesem Fall z.B. Annahme: es gibt immer genau ein leeres Feld zur Artikelnummerneingabe. Schicke ein Formular mit x Eingabefeldern (bein ersten mal ist x = 1) und dem Senden-Button an den Client. Jedes Eingabefeld steht für eine Artikelnummer (ANO_1, ANO_2 ...) Wenn das Formular vom Client zurück geschickt wird (Senden) bekommst Du eine Reihe gefüllter oder eben leerer Variablen. Für die gefüllten macht Du die Artikelnummernabfrage. Mit den Werten wird ein neues Formular generiert. Und nun kommt es: Die ersten ANO-Felder werden mit den Werten gültiger Artikelummern aus dem ersten Senden vorbelegt. Die dazugehörigen Artikeldaten kommen in das Formular. Hinter dem letzten belegten Feld kommt dann ein leeres für eine neue Artikelnummer. Zur Vereinfachung kann man eine verstecke Variable mitschicken (ANR_MAX) mit der Anzahl der Artikelnummernfelder. So wird Dein Formular von mal zu mal länger. Die Grundmimik ist aber immer gleich. Kannste über ne Schleife handeln. Das Spiel wird also in erster Linie davon bestimmt, wie HTML bzw. HTTP Daten zwischen Client und Server hin und her schicken, wie die ausgewertet werden können und wie Formulare darzustellen sind. Bitte frag mich jetzt aber nicht, wie der PHP-Code aussehen würde. Ich habe momentan nicht die Zeit mich da reinzudenken. gruß Christoph
__________________
"E´n Schipp mokt man ut Holt, ut Plastik mokt man Klodeckels!" für Palm und PocketPC: http://navtool.bootstechnik.de |
#6
|
![]()
Das war auch genau mein Gedanke - Du musst systematisch zwei Formulare unterscheiden:
1. Artikelnummer eingegeben - Send - Artikeldaten ermittelt - neues Formular generiert mit einer weiteren Zeile und neuem Eingabefeld 2. Warenkorb abschicken mit allen bisher ermittelten Artikelnummern Dazu musst Du zwei Formulare in die HTML-Datei einbauen, die unterschiedliche Reaktionen auslösen - das eine interpretiert nur die "neue" Artikelnummer, das zweite löst den gesamten Warenkorb aus. Vielleicht schaffe ich die Woche mal ein Demo zu basteln ...
__________________
Andreas www.bootstechnik.de alle Binnen-Pflichtdokumente elektronisch dabeihaben: Thread 178207 Ruhrskipper: http://www.bootstechnik.de/downloads/ruhrschleusen.pdf (Version: 11.07.2019) |
#7
|
||||
|
||||
![]() Zitat:
@Seestern: Würde ich aber mit einem Formular lösen, das die ermittelten Werte aus der DB als values ins Formular geschrieben bekommt... lässt sich entweder durch verschiedene Submit-Buttons oder einfach die simple und ohnehin notwendige Prüfung auf vollständige Angaben regeln... Anyway... ohne Quellcode ist das alles nur Theorie... |
#8
|
|||
|
|||
![]() Zitat:
Aber ich habe seit einiger Zeit das komische Gefühl, du lässt den Schlaumeier raushängen. |
#9
|
||||
|
||||
![]() Zitat:
![]() |
#10
|
||||
|
||||
![]() Zitat:
Bernd
__________________
Euer boote-forum.de Admin Bernd |
#11
|
|||
|
|||
![]() Zitat:
Deshalb versteh´ich deine Frage nicht! |
#12
|
|||
|
|||
![]()
Hallo Markus,
ich sortiere den Quellcode morgen mal raus, vielen Dank für Dein Angebot. Den Quellcode für die lösung eine Artikelnummer direkt in den Warenkorb zu übergeben habe ich oben ja schon gepostet. Mir ist das ursprüngliche Formular leider zersägt ![]() Im Moment arbeite ich dort mit einem normalen Formmailer ohne Abfragefunktion. ![]() ![]() |
#13
|
||||
|
||||
![]()
Moin Andreas,
Zitat:
Ein Formular finde ich wartungsbedingt immer angenehmer. |
#14
|
||
![]() Zitat:
Und Du hast in sofern recht, dass ich auch schon mal eine Antwort gebe, wenn ich zur Frage kein Vollprofi bin - aber ich selbst weiß aus meiner Anfängerzeit hier, dass eine Antwort mit einer Idee, einer Meinung, einer Vermutung für absolute Neulinge auch eine Hilfe sein kann - insbesondere, wenn die Vollprofis sich nicht rühren. Und von PHP / HTML / SQL verstehe ich de facto wirklich ein bisschen. Das "schaffen" bezog sich auf die Zeit, nicht auf die Kompetenz. Und wenn Du ein bisschen präziser äußern könntest, was Dich an meinen Postings stört, könnte ich darüber nachdenken, es zu ändern. ![]()
__________________
Andreas www.bootstechnik.de alle Binnen-Pflichtdokumente elektronisch dabeihaben: Thread 178207 Ruhrskipper: http://www.bootstechnik.de/downloads/ruhrschleusen.pdf (Version: 11.07.2019) |
#15
|
|
![]() Zitat:
Das mit den zwei Formularen finde ich durch die klare Trennung sogar ganz praktisch - insbesondere, wenn man zwei unterschiedliche ACTIONs (z.B. orderform.php und gotocashier.php o.ä.) aufrufen will. Aber klar - man kann das auch über Parameter lösen und bspw. den beiden Submit-Buttons separate Werte vergeben.
__________________
Andreas www.bootstechnik.de alle Binnen-Pflichtdokumente elektronisch dabeihaben: Thread 178207 Ruhrskipper: http://www.bootstechnik.de/downloads/ruhrschleusen.pdf (Version: 11.07.2019) |
#16
|
||||
|
||||
![]() Zitat:
Code:
echo " <td width='14%'>Matrikelnummer </td> <td width='86%' valign='top'> <input type='text' name='matrikelnummer' size='8' maxlength='8'"; if (isset($matrikelnummer)) echo " value='$matrikelnummer'"; echo "></td>"; |
#17
|
![]()
live:
http://www.bootstechnik.de/demo.php (gern auch als php-Datei per eMail) Nicht elegant, nicht sicher, nicht hübsch - ich habe hier nur Notepad ![]() Code:
<html> <head> <title>Demo-Shop mit Artikeldaten-Ergänzung</title> </head> <body> <h1>Demo-Shop</h1> Bitte erfassen Sie eine Artikelnummer, die Sie bestellen möchten. Klicken Sie auf "Artikeldaten", um die entsprechenden Artikeldaten zu aktualisieren, oder auf "Warenkorb", um die bisher ausgewählten Artikel in den Warenkorb zu übernehmen. <hr> <?php echo "<form ACTION=demo.php method=GET>"; // Anzahl bisher erfasster Artikel $counter = $HTTP_GET_VARS["counter"]; // Artikelnummern der bisher erfassten Artikel im Format number_1, number_2, ... + ggfs. den neuen Artikel for ($loop=1; $loop <= $counter+1; $loop++) $number[$loop] = $HTTP_GET_VARS["number_$loop"]; $action = $HTTP_GET_VARS["action"]; // Differenzierung je nachdem, welcher Submit-Button geklickt wurde if ($action == "Warenkorb") echo "Ihr aktueller Warenkorb:\n"; else echo "Wählen Sie einen weiteren Artikel:\n"; // 'Mitschleifen' der aktuellen Artikelanzahl echo "<input type=hidden name=counter value=".($counter + 1).">\n"; echo "<table border=1>\n"; echo "<tr>\n"; echo "<th>Artikelnr.</th>\n"; echo "<th>Bezeichnung</th>\n"; echo "<th>Preis [EUR]</th>\n"; echo "<th></th>\n"; echo "</tr>\n"; // bisherige Artikel anzeigen if ($action == "Warenkorb") $last = ($counter - 1); else $last = $counter; for ($loop = 1; $loop <= $last; $loop++) { // your code goes here ... // Hier musst Du noch die Artikeldaten zu den Artikelnummern aus dem Backend holen echo "<input type=hidden name=number_".$loop." value=$number[$loop]>\n"; echo "<tr>\n"; echo "<td>\n"; echo $number[$loop]; echo "</td>\n"; echo "<td>\n"; echo "(Your saArticleID)\n"; echo "</td>\n"; echo "<td>\n"; echo "(Your saArticlePrice)\n"; echo "</td>\n"; echo "<td>\n"; echo "\n"; echo "</td>\n"; echo "</tr>\n"; } if ($action != "Warenkorb") { echo "<tr>\n"; echo "<td>\n"; echo "<input type=text name=number_".($counter + 1).">\n"; echo "</td>\n"; echo "<td>\n"; echo "(automatisch)\n"; echo "</td>\n"; echo "<td>\n"; echo "(automatisch)\n"; echo "</td>\n"; echo "<td>\n"; echo "<input type=submit value='Artikeldaten' name='action'>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td colspan=4 align=center>\n"; echo "<input type=submit value='Warenkorb' name='action'>\n"; echo "</td>\n"; echo "</tr>\n"; } ?> </table>
__________________
Andreas www.bootstechnik.de alle Binnen-Pflichtdokumente elektronisch dabeihaben: Thread 178207 Ruhrskipper: http://www.bootstechnik.de/downloads/ruhrschleusen.pdf (Version: 11.07.2019) |
#18
|
||||
|
||||
![]()
Eigentlich ist Tom ja schon fast fertig, da die Artikelauswahl per Nummer ja schon funzt und die Eintragung per AddArticleToBasket($VID,$saArticle); schon zum gewünschten Ergebnis führt (sieht man in einem entsprechenden Editor einfach besser
![]() Sein Fehler besteht nur darin, noch ein Formular basteln zu wollen, statt den Warenkorb, der die gewünschte Auflistung bereits bietet, dafür zu benutzen. Im Prinzip muß er nur alles HTML-Zeugs aus der zweiten Datei rausschmeißen (bis auf die Meldung) und dies in den obernen Teil des Warenkorbs includen, der die Anzeige dann übernimmt (und auch alle sonstigen Buttons (entnehmen, Kasse, etc.) bereits anbietet). |
#19
|
||||
|
||||
![]() Zitat:
Code:
<td width="14%">Matrikelnummer </td> <td width="86%" valign="top"> <input type="text" name="matrikelnummer" size="8" maxlength="8" value="<?php echo $matrikelnummer; ?></td>"; ![]() |
#20
|
||||
|
||||
![]() Zitat:
genau SO hatte ich mir das auch vorgestellt! gruß Christoph
__________________
"E´n Schipp mokt man ut Holt, ut Plastik mokt man Klodeckels!" für Palm und PocketPC: http://navtool.bootstechnik.de |
![]() |
|
|