我在实现 W3C 网站上的 ajax 示例时遇到了困难。该示例从数据库中提取结果并根据从下拉菜单中选择的选项将它们显示在表中。
http://www.w3schools.com/php/php_ajax_database.asp
我已尝试配置此示例以满足我的要求。这是根据选择的选项更新数据库中的字段。我想我很接近我只是想确保我在正确的轨道上。选择选项时,将进行AJAX调用,从而触发我的PHP脚本以进行更改。它看起来像这样:
<?php
$q = mysql_real_escape_string($_POST['q']);
print_r($_GET["q"]);
$con = mysql_connect('localhost', '', '');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Orders", $con);
$sql= "UPDATE Orders SET status='.$_POST[q]['.$i.'].' WHERE ID='.$_POST[order_no] ['.$i.'].'";
但是,此数据并未输入数据库。我可以检索 $q 的值,它是“已批准”、“待定”或“未批准”,但不能检索特定订单号来更新该单独的行。我的选择框如下所示:
echo '<select name="order_status[]" id="id" onchange="showUser(this.value)">';
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>';
这包含在表单中,该表单还根据选中的复选框发送电子邮件。此功能有效,我可以向单个行发送电子邮件:
<form method ="post" action="sendemail.php">
echo '<td><input type="checkbox" name="order_selected['.$i.']"/></td>';
//in send mail.php:
if(isset($_POST['order_selected']))
{
$keys = array_keys($_POST['order_selected']);
foreach($keys as $key)
//send email
我需要在同一个 php 脚本中实现更新代码吗?或使用相同的方法循环遍历数组?
非常感谢