Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » PHP-Formular! Hilfe bei "einer IF-Abfrage in der IF-Abfrage"<... Antworten
PHP-Formular! Hilfe bei "einer IF-Abfrage in der IF-Abfrage"

brotherlouie23
Pixelschubser


Beiträge: 5


Hallo zusammen,
nach langem Hin und Her ist mein Bestellschein so gut wie fertig; *freu*
In der Bestellung kann man (in der Tabellenform angeordnet) 4 Anforderungen stellen (mit Art.-Nummer, Menge, Einheit ...)

Jetzt möchte ich gerne in der eigentlich Abfrage eine IF-Abfrage stellen um in der hinterher ankommenden E-Mail nur die ausgefüllten Anforderungen anzuzeigen,
da heißt z.B. WENN für die Variable Gegenstand2 in der 2.Anforderung nichts angegeben wurde, dann zeigt er nichts an oder sowas wie "Keine weitere Anforderung"!

Vielleicht kann mir jemand dabei helfen!
Hier poste ich mal das (inhaltlich gekürzte u. geschwärzte) Script!

Vielen Dank im Voraus!!

<?php
if(!isset($Besteller)){
?>
<table border="0" cellpadding="4" width="600">
<tr>
<th><h2><font size="2">
<div align="left"></div>
<div align="left"></div>
<div align="left"></div>
<div align="left"></div>
<div align="left"><br><br></div></h2></th>

<th><h1><font size="5"><div align="center">
<div align="center">Online-Bestellschein</div>
<div align="center">Hospital</div>
<hr noshade width="300" size="3" align="center">
</h1></th>
</tr>

<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
<table width="58%" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="15%" valign="top">
&#160;Datum:
</td>
<td width="85%">
<input type="text" name="Datum">
</td>
</tr>

<tr>
<td width="15%" valign="top">
&#160;Lieferant:
</td>
<td width="85%">
<select name ="Lieferant">
<option value="Unbekannt">Unbekannt</option>
</select>
</tr>

<tr>
<td width="15%" valign="top">
&#160;Abteilung:
</td>
<td width="85%">
<select name ="Abteilung">
<option value="C1">C1</option>


</select>
</tr>

<tr>
<td width="15%" valign="top">
&#160;Besteller:
</td>
<td width="85%">
<input type="text" name="Besteller">
</td>

<tr>
</input>
</td>
</tr>

<tr>
<td width="15%" valign="top">
&#160;Rufnummer:
</td>
<td width="85%">
<input type="zahl" name="Rufnummer">
</tr>
</td>
</tr>
<tr>
</input>
</td>
</tr>

<tr>
<table cellpadding="5" cellspacing="2" border="18" width="70%">
<th>Art.-Nr.:</th>
<th>Menge:</th>
<th>Einheit:</th>
<th>Gegenstand</th>
<th>Preis(EUR):</th>
</tr>

<tr>
<td><input type="text" name="Artikelnummer1" size="15"></td>
<td><input type="zahl" name="Menge1" size="15"></td>
<td><select name ="Einheit1">
<option value=""></option>
<option value="Stück">Stück</option>
<option value="Liter">Liter</option>
<option value="Karton(s)">Karton(s)</option>
<option value="Sonstige">Sonstige</option>
</select></td>
<td><input type="text" name="Gegenstand1" size="60"></td>
<td><input type="text" name="Preis1" size="10"></td>
</tr>

<tr>
<td><input type="text" name="Artikelnummer2" size="15"></td>
<td><input type="zahl" name="Menge2" size="15"></td>
<td><select name ="Einheit2">
<option value=""></option>
<option value="Stück">Stück</option>
<option value="Liter">Liter</option>
<option value="Karton(s)">Karton(s)</option>
<option value="Sonstige">Sonstige</option>
</select></td>
<td><input type="text" name="Gegenstand2" size="60"></td>
<td><input type="text" name="Preis2" size="10"></td>
</tr>

<tr>
<td><input type="text" name="Artikelnummer3" size="15"></td>
<td><input type="zahl" name="Menge3" size="15"></td>
<td><select name ="Einheit3">
<option value=""></option>
<option value="Stück">Stück</option>
<option value="Liter">Liter</option>
<option value="Karton(s)">Karton(s)</option>
<option value="Sonstige">Sonstige</option>
</select></td>
<td><input type="text" name="Gegenstand3" size="60"></td>
<td><input type="text" name="Preis3" size="10"></td>
</tr>

<tr>
<td><input type="text" name="Artikelnummer4" size="15"></td>
<td><input type="zahl" name="Menge4" size="15"></td>
<td><select name ="Einheit4">
<option value=""></option>
<option value="Stück">Stück</option>
<option value="Liter">Liter</option>
<option value="Karton(s)">Karton(s)</option>
<option value="Sonstige">Sonstige</option>
</select></td>
<td><input type="text" name="Gegenstand4" size="60"></td>
<td><input type="text" name="Preis4" size="10"></td>
</tr>
</table>
<br>
<td width="15%" valign="top">
&#160;Anmerkung:<br>
</td>
<td width="50%">
<textarea cols="30" rows="3" name="Anmerkung"></textarea>
</td>
</tr>

<br>
<br>

<tr>
<td width="15%" valign="top">&nbsp;</td>
<td width="85%">
<input type="submit" value="Bestellung senden" name="submit">
<input type="reset" name="Notok" value="Eingaben löschen">
</td>
</tr>
</table>
</form>

<?php
}
else{
$emailbody = '
<html>
<!--
Hallo ' . $Besteller . '
Ihr System unterstuetzt keine HTML-Mails!
Folgende Nachricht wurde Ihnen uebermittelt:
-->
<body bgcolor="#FFFFFF" text="#000000">
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#FFEEDD" >
<b>Online-Bestellschein</b>
</td>
</tr>
</table>
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#EEEEEE" >
<img src="http://pc21/test/intranet.bmp" width="75" height="65" border="0" alt="Intranet">
</td>
<td bgcolor="#EEEEEE" valign="bottom" width="100%">
</td>
</tr>

<tr>
<td bgcolor="#FFFFFF" valign="top" width="100%">
<h2>Datum: ' . $Datum . '</h2>
<p><b>Lieferant: ' . $Lieferant . '</b></p>
<p><b>Abteilung: ' . $Abteilung . '</b></p>
<p><b>Besteller: ' . $Besteller . '</b></p>
<p><b>Anmerkung zur Bestellung: ' . $Anmerkung . '</b></p>

<b>1.Anforderung:</b><br>
Artikelnummer: ' . $Artikelnummer1 . '<br>
Menge: ' . $Menge1 . ' <br>
Einheit: ' . $Einheit1 . ' <br>
Gegenstand: ' . $Gegenstand1 . '<br>
Preis (Euro): ' . $Preis1 . '<br><br>

<b>2.Anforderung:</b><br>
Artikelnummer: ' . $Artikelnummer2 . '<br>
Menge: ' . $Menge2 . ' <br>
Einheit: ' . $Einheit2 . ' <br>
Gegenstand: ' . $Gegenstand2 . '<br>
Preis (Euro): ' . $Preis2 . '<br><br>

<pre><font face="Verdana,Geneva,Arial, Helvetica,sans-serif" color="#006600">'
. "" .
'</font></pre>
</td>
</tr>

<tr>
<td colspan=2 bgcolor="#EEEEEE" >
</td>
</tr>
</table>
&nbsp;<a href="mailto:ich@domain.de">Kontakt: ich@domain.de</a></p>
</body>
</html>
';

$header="From:$email_from_name<$email_from_mail>\n";
$header .= "Reply-To: $email_from_mail\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
mail($email_to,$email_betreff,$emailbody,$header);

echo "<b>Vielen Dank!</b><br>";
echo "<b>Ihre Bestellung ist eingegangen!</b><br>";
echo "<b>Sie können dieses Fenster nun schließen!</b><br>";

}
?>
</body>
</html>


  Profil   E-Mail   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Nutze Arrays! Du kannst bei PHP auch Feldnamen mit Array-Syntax definieren.

In HTML sieht das so aus:
1: 
2:
<input type="text" name="artikel[1]" value="4"/>
<input type="text" name="artikel[2]" value="3"/>


PHP erzeugt dann automatisch ein Array daraus - also im Beispiel $_REQUEST['artikel'] mit den Schlüsseln 1 und 2. Dieses Array kannst du dann bequem mit einer foreach-Schleife durchlaufen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

brotherlouie23
Pixelschubser


Beiträge: 5


Hey, vielen Dank schonmal!!!!!
Aber entweder ich begreife den Tipp nicht oder ich hab die Frage nicht so gestellt, wie ich sie stellen müsste, damit mein Problem deutlich wird:
also im Browser erscheint hinerher u.a. ja eine Tabelle in dieser Forn:

(nur im Script) Art.-Nummer: Menge: Einheit: Gegenstand: Preis:
1.Anforderung
2.Anf.
3.Anf.
4.Anf.

Und ich will es immer wieder von dem Feld "Gegenstand" abhängig machen,
ob die nächste Anforderung überhaupt ausgegeben wird!
Sonst soll er am besten gar nix ausgeben oder lediglich sowas wie "Keine weitere Bestellung!"...

Kann ich das mit den Arrays erreichen??

  Profil   E-Mail   Editieren   Zitieren

k-man
Otto-Normal-Poster


Beiträge: 52


Hi,
ohne es ausprobiert zu haben, würde ich sagen, dass das möglich ist.

arrays definieren --> if-Abfrage (ob arrays ausgewält) --> wietere Anweisungen.

---
Wissen ist Macht; nichts wissen macht auch nix!

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Der Vorteil bei einem Array ist, das du sehr bequem Schleifen drauf los lassen kannst. Das minimiert den Quellcode. Du kannst auch einfach mit isset() nachschauen ob ein bestimmtes Element des Arrays gesetzt ist.

Allerdings ist das mehr konzeptionell als technisch.

Ich würde zB auch die ganzen Produktinfos (Nummer und Anzahl) der Bestellung nicht im Formular, sondern in der Session ablegen. Den Preis würde ich immer aktuell aus der Datenbank holen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

brotherlouie23
Pixelschubser


Beiträge: 5


Aber kann ich mit Arrays schon abfragen, ob Werte IM FORMULAR eingetragen worden sind....also NICHT in einer Datenbank ODER, denn ich arbeite ohne DB!?

Na ja, ich probier das gleich mal aus....
so ganz weiß ich noch nicht, wie und wo ich diese Arrays setzen muss...bzw wie die Schleife dann initialisiere...so tief wollte ich eigentlich gar net in den PHP-Sumpf rein.....sollte doch ein einfaches Formular werden!
Ich weiß, es wir auch noch viiiiel komplizierter gehen, aber ich finde, das reicht!


  Profil   E-Mail   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Mit Arrays wird das Formular um vieles einfacher, da die Wiederholungen nicht alle einzeln im PHP-Quelltext stehen. Wenn Daten auf dem Server verbleiben, wird es auch generell einfacher, da sie nicht durch Benutzer verfälscht werden können.

Wenn du allerdings kein PHP lernen willst, solltest du eventuell ein fertiges Shop-Script nutzen (das Formular sieht ziemlich nach Shop aus) oder jemanden damit beauftragen. Bei Bestellungen geht es nun mal um Geld und da können Fehler ziemlich verhängnisvoll sein.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben