Hallo 1unitedpower,
So ähnlich könntest du vorgehen, allerdings würde das jetzt noch dazu führen, dass die Fehlermeldung bei jedem Formular angezeigt werden würde, unabhängig davon, welches Formular überhaupt ausgefüllt und versendet wurde. Du müsstest also vorher noch prüfen, auf welchen Artikel sich die Fehlermeldung eigentlich bezieht. Dazu kannst du Artikel-ID benutzen, die du ja von dem Hiddenfeld übermittelt bekommst.
Hab es nochmals leicht überarbeitet, was sagst du dazu?
<?php
if(isset($_POST['wk'])){
if(!empty($_POST['preis'])){
echo "<pre>";
print_r($_POST);
echo "</pre>";
}
else {
$error = "Bitte ein Preis wählen";
}
}
?>
<section>
<h2>Artikel</h2>
<article>
<h3>Alternativ zu Brother LC-1000 Tinten Spar-Set (4xBK,je 2xC,M,Y) 10 Stück</h3>
<?php if(isset($_POST['wk']) && ($_POST['artikel_id'] == "000001")
&& empty($error) === false) {echo $error;} ?>
<form method="post" action="moin123.php">
<input type="radio" name="preis" id="000001-preis1" value="14.64">
<label for="000001-preis1">14,64 €</label>
<input type="radio" name="preis" id="000001-preis2" value="10.99">
<label for="000001-preis2">10,99 €</label>
<input type="radio" name="preis" id="000001-preis3" value="11.64">
<label for="000001-preis3">11,64 €</label>
<input type="hidden" value="000001" name="artikel_id">
<input type="submit" name="wk" value="In den Warenkorb">
</form>
</article>
<article>
<h3>Original Brother TN-1050 Toner Black</h3>
<?php if(isset($_POST['wk']) && ($_POST['artikel_id'] == "000002")
&& empty($error) === false) {echo $error;} ?>
<form method="post" action="moin123.php">
<input type="radio" name="preis" id="000002-preis1" value="31.61">
<label for="000002-preis1">31,61 €</label>
<input type="radio" name="preis" id="000002-preis2" value="32.40">
<label for="000002-preis2">32,40 €</label>
<input type="radio" name="preis" id="000002-preis3" value="33.20">
<label for="000002-preis3">33,20 €</label>
<input type="hidden" value="000002" name="artikel_id">
<input type="submit" name="wk" value="In den Warenkorb">
</form>
</article>
</section>
Viele Entwickler versuchen sogar, sich möglichst nie zu wiederholen, das Prinzip heißt "Don't repeat yourself" kurz DRY, also "Wiederhole dich nicht selbst".
Würde ich auch gerne, aber ich wüsste nicht, wie ich diesen PHP Code nun noch weiter kürzen kann / soll.