単純化しようとしているphpページがあり、単独では解決できないいくつかの問題が発生しています。私のフォームはユーザーデータを取得し、それ自体に投稿し、フィールドが入力されていることを検証してから、フォームの内容/投稿をmysqlデータベースに表示します。
私が抱えている問題は、20個のif()/ elseifステートメントではなく、変数名を配列にロードし、その配列をループして、変数がフォームに入力されていない場合にエラーメッセージを生成することです。 。残念ながら、私のコードでは、フィールドに値が含まれているかどうかに関係なく、エラーメッセージが表示されます。
追加のメモとして、$ ShippingCoをフォームに追加してエコーすることはできますが、完了していないという通知は引き続き表示されます。
また、スクリプトがifステートメントを入力した場合、終了後にページの残りの部分の実行を停止したいので、終了しようとしました。成功せずに。
これが私が持っているものです:
<?php
$ShippingCo = $_POST['ShippingCo'];
$ShipAcct = $_POST['ShipAcct'];
$ShipService = $_POST['ShipService'];
$FOB = $_POST['FOB'];
$Terms = $_POST['Terms'];
$ENote[] = '$Terms';
$ENote[] = '$FOB';
$ENote[] = '$ShippingCo';
$ENote[] = '$ShipAcct';
$ENote[] = '$ShipService';
$Emessg[] = 'Shipping Terms';
$Emessg[] = 'FOB Method';
$Emessg[] = 'Shipping Company';
$Emessg[] = 'Shipping Account';
$Emessg[] = 'Shipping Service Type';
foreach ($ENote as $a => $b) {
if(!$$ENote[$a]){ //I intentionally put the '$$' in this line otherwise none of the messages show. . . with data in the variables or not.
$error = "Error! Please Add the $Emessg[$a]!";
?>
<table width="800" align="center">
<tr>
<td align="center">
<h2>Sales Order Entry Form</h2>
</td>
</tr>
<tr>
<td align="center">
<h3>
<font color="red">
<?php
echo "$error";
?>
</font>
</h3>
</td>
</tr>
<tr>
<td align="center">
Please press back to properly complete the form</td>
</tr>
</table>
<?php
}
}
?>
前もって感謝します。