如何使用onChange传递多个值来更新php表中的数据库
How to pass multiple values using onChange to update a database in a php table
目的:通过修改PHP表中显示的数据来使用onchange函数更新库存数据库。
我正在从数据库中提取数据并将其显示在表中。我有数据显示在文本字段,所以他们是可编辑的。编辑完数据后,我的函数使用POST提供的数据,最好是项目ID和值,将用于更新库存。
这是我的'inventory.php'代码:
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$inventory = mysqli_query($db, "SELECT item_id, item_name, item_quantity, item_cost, item_price FROM inventory");
$num_rows = mysqli_num_rows($inventory);
mysqli_close($db);
echo "<form id='"update_add_inventory'" action='"'" method='"post'">";
echo "<table>";
echo "<tr>";
echo "<th>Item ID</th>";
echo "<th>Item Name</th>";
echo "<th>Item Quantity</th>";
echo "<th>Item Cost</th>";
echo "<th>Item Price</th>";
echo "</tr>";
$i = 1;
while($row = mysqli_fetch_array($inventory))
{
echo "<tr>";
echo "<td>".$row['item_id']."</td>";
echo "<td><input type='"text'" name='"item_".$i."_name'" onchange='"updateInventory('update_inventory.php')'" value='".$row['item_name']."' /></td>";
echo "<td><input type='"text'" name='"item_".$i."_quantity'" onchange='"updateInventory('update_inventory.php')'" value='".$row['item_quantity']."' /></td>";
echo "<td><input type='"text'" name='"item_".$i."_cost'" onchange='"updateInventory('update_inventory.php')'" value='".$row['item_cost']."' /></td>";
echo "<td><input type='"text'" name='"item_".$i."_price'" onchange='"updateInventory('update_inventory.php')'" value='".$row['item_price']."' /></td>";
echo "</td></tr>";
$i++;
}
echo "</table><br>";
echo "</form>";
下面是我的onchange函数:
function updateInventory(action)
{
document.getElementById('update_add_inventory').action = action;
document.getElementById('update_add_inventory').submit();
}
这是我的'update_inventory.php'代码:
$db = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$inventory = mysqli_query($db, "SELECT item_id, item_name, item_quantity, item_cost, item_price FROM inventory");
$num_rows = mysqli_num_rows($inventory);
$i = 1;
for ($n=1; $n<=$num_rows; $n++) {
if (isset($_POST['item_'.$i.'_name'])) {
$item_id = $_POST['item_'.$i.'_id'];
$item_name = $_POST['item_'.$i.'_name'];
$result = mysqli_query($db, "UPDATE inventory SET item_name='".$item_name."' WHERE item_id='".$item_id."'");
} else if (isset($_POST['item_'.$i.'_quantity'])) {
$item_id = $_POST['item_'.$i.'_id'];
$item_name = $_POST['item_'.$i.'_quantity'];
$result = mysqli_query($db, "UPDATE inventory SET item_quantity='".$item_quantity."' WHERE item_id='".$item_id."'");
} else if (isset($_POST['item_'.$i.'_cost'])) {
$item_id = $_POST['item_'.$i.'_id'];
$item_name = $_POST['item_'.$i.'_cost'];
$result = mysqli_query($db, "UPDATE inventory SET item_cost='".$item_cost."' WHERE item_id='".$item_id."'");
} else if (isset($_POST['item_'.$i.'_price'])) {
$item_id = $_POST['item_'.$i.'_id'];
$item_name = $_POST['item_'.$i.'_price'];
$result = mysqli_query($db, "UPDATE inventory SET item_price='".$item_price."' WHERE item_id='".$item_id."'");
}
$i++;
}
mysqli_close($db);
header('Location: inventory.php');
我遇到的麻烦是,我一直无法找到一种方法来传递"项目ID"和被修改到更新脚本的值。我可以通过值传递我需要的数据,然后使用list和explosion来分隔它们,但这样做我在每个文本字段中显示项目ID,这是不好的。
如果您知道使用onchange函数将这两部分数据传递给脚本的方法,我将非常感谢您的帮助。
您可以将其作为参数添加到onChange函数,然后在提交之前使用此值更新表单上的隐藏字段。
PHPupdateInventory('update_inventory.php', ".$row['item_id'].")
JavaScript function updateInventory(action, item_id){
// update hidden form value with item_id
document.getElementById('item_id').value = item_id;
document.getElementById('update_add_inventory').action = action;
document.getElementById('update_add_inventory').submit();
}
相关文章:
- 使用PHP更新external.js中的Javascript变量
- 如何使用 PHP 更新 JSON 文件中的值
- 如何使用PHP更新JavaScript变量
- 从javascript运行php更新文件
- 使用 PHP 更新网页的一部分
- 使用模态使用 php 更新查询
- 使用 ajax 函数触发的 php 更新数据库
- 尝试使用 mysql 和 php 更新 jquery 变量
- 使用 PHP 更新 SQL 数据库
- Javascript PHP更新所有打开的实例,如Facebook
- PHP更新单元格数据错误
- 使用Ajax/PHP更新Javascript变量
- 如何让PHP更新javascript的冗长进程状态
- 尝试用javascript/PHP更新数据库不工作
- PHP 更新后 JS 警报不会触发
- 从PHP更新mysql的最后一行
- 使用PHP更新后,在数据库中插入错误格式的日期
- 当Javascript中的数组更新时,如何使用PHP更新和插入数据库
- 使用PHP更新数据库后的视图的ajax更新
- PHP -更新动态HTML表中的一行