セレクトボックスから別のオプション値を選択したときに関数を呼び出すことはできますか? 選択ボックスは、「承認済み」「保留中」および「不承認」で構成されています。データベースに入力すると、提出物に「保留中」のフラグを自動的に付けるフォームがあります。
管理者によって「保留中」から「承認済み」または「不承認」に変更されると、SQL クエリが実行されてテーブル内の情報が更新されます。これに最適なテーブル構造はどれですか? また、オプション値が変更されたときに、影響を受ける表セルの行に CSS クラスが適用されるようにするにはどうすればよいですか。変更しない限り同じままです。jQuery を試してみましたが、私の要件を満たしているとは思えません
コード:
<?php
$result = mysql_query("SELECT * FROM Orders")
or die (mysql_error());
?>
<form method ="post" action="sendemail.php">
<table style ="background-color:#ffffff;">
<tr>
<th>Order Number</th>
<th>Order Date</th>
<th>Ordered By</th>
<th>Supplier</th>
<th>Total Price</th>
<th>Requested By</th>
<th>Status</th>
</tr>
<?php
while ($row = mysql_fetch_assoc($result))
{
echo '<tr>';
echo '<td><input type="text" name="order_n`enter code here`o[]" value="' . $row['Orderno'] . '"/> </td>';
echo '<td><input type="text" name="order_date[]" value="' . $row['Orderdate'] . '"/></td>';
echo '<td><input type="text" name="order_ordered_by[]" value="' . $row['Orderedby'] . '"/></td>';
echo '<td><input type="text" name="order_supplier[]" value="' . $row['Supplier'] . '"/></td>';
echo '<td><input type="text" name="order_total_price[]" value="' . $row['totalprice'] . '"/></td>';
echo '<td><input type="text" name="order_requested_by[]" value="' . $row['requestedby'] . '"/></td>';
echo '<td>';
echo '<select name="order_status[]">';
echo '<option></option>';
echo '<option>Approved</option>';
echo '<option>Pending</option>';
echo '<option>Dissaproved</option>';
echo '</select>';
echo '</td>';
echo '</tr>';
}
?>
テーブルの行の色を変更する現在のjQueryですが、各オプション値にCSSクラスを追加したいと思います。ステータスが変更されると、これがデータベースに反映され、正しいクラスが適用されます。
<script type="text/javascript">
$(document).ready(function() {
var color = ['none', '#DEF3CA', '#EECFA1', '#FFCCCC'];
$('table').on('change','select', function() {
$(this).parents('tr').css('background', color[$(':selected', this).index()]);
});
});
</script>
テーブル CSS:
<style type = "text/css">
table,td {
border:1px solid #999;
font-family: Tahoma,Arial,verdana;
font-size: 12px;
width:auto;
font-weight: none;
line-height: 1.4em;
font-style: normal;
border-collapse:separate;
}
td {
width:250px;
padding:15px;
color:#000;
border:1px solid;
border-bottom:1px solid;
}
</style>
「Requestedby」に基づいて各人に電子メールを送信する SendEmail スクリプト
<?php
if(isset($_POST['order_requested_by']))
{
$row_count = count($_POST['order_requested_by']);
for($i=0; $i<$row_count; $i++)
{
$to = $_POST['order_requested_by'][$i];
$subject = "Order Status";
$message = "Your order number: " . $_POST['order_no'][$i] ." ". "is" ." ". $_POST['order_status'][$i];
$orderdate = "Order date: " . $_POST['order_date'][$i];
$from = "no-reply@.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$orderdate,$headers);
echo "Mail Sent.";
}
?>