3つのオプションがある選択ボックスがあります。オプションを選択すると、保存ボタンをクリックして、フィールドでデータベースの更新を実行します。これには、1つのフォームに2つの送信ボタンが含まれます。送信ボタンごとに異なるアクションを作成しました。これが保存ボタンになります。
if ($_POST['update_status'] == 'Save') {
$keys = array_keys($_POST['order_status']);
//perform the database update to change the option value
}
if(isset($_POST['order_selected'])) {
//send email
}
現時点では、各オプションの選択ボックスは次のようなテーブルに埋め込まれています。
echo '<select name="order_status[] id="id"">';
echo '<option value = "Pending" name="order_status['.$i.']" class = "pending"' . ($row['status'] == 'Pending' ? ' selected=selected' : '') . '>Pending</option>';
echo '<option value = "Approved" name="order_status['.$i.']" class = "approved"' . ($row['status'] == 'Approved' ? ' selected=selected' : '') . '>Approved</option>';
echo '<option value = "Disapproved" name="order_status['.$i.']" class ="disapproved"' . ($row['status'] == 'Disapproved' ? ' selected=selected' : '') . '>Disapproved</option>';
echo '</select>';
フォームの外にあり、データベースから一意の注文IDを投稿してから更新を実行することで機能することを除いて、現時点では更新クエリが機能しています。ただし、「承認済み」しか実行できません。注文が作成されたときにデータベースにフラグを設定しているため、「保留中」は問題ではありません。デフォルトでは保留中です。
フォームの外でこの機能を使用する代わりに、アップルでドロップダウンアイテムを選択し、[保存]をクリックすると、データベース更新クエリが実行され、同じフォーム内の選択ボックスの値が変更されます。可能?。
現時点では、フォームの外に次のようなクエリと送信ボタンがあります。
<?php
if (!empty($_POST)) {
$id = intval($_POST['approval']);
$query = "UPDATE Orders SET status = 'Approved' WHERE id = $id";
mysql_query($query);
}
$query = "SELECT ID, Orderno, status FROM Orders WHERE status = '0'";
$result = mysql_query($query);
?>
<select name="approval">
<?php while ($row = mysql_fetch_assoc($result)): ?>
<option value="<?php echo $row['ID']; ?>"><?php echo $row['Orderno']; ?></option>
<?php endwhile; ?>
</select>
<input type="submit" action ="" value="Approve Order" />
どうもありがとうございました。これにどのように取り組むべきかについてのアドバイスをいただければ幸いです。