这是我第一次制作wordpress插件。我试图创建一个包含多行的表单,因此可以单独更新sql表中的每一行。使用下面的脚本,我只能编辑最后一行,而不能编辑其他行。
<form name="edit_from" action="<?php bloginfo('url'); ?>/wp-content/plugins/menu/process.php" method="post">
<?php foreach($resultupdate as $key => $row ) { ?>
<tr id="product">
<td id="naam"><input name="id1" value="<?php echo $row->ID ?>"/><input type="text" name="productnaam[<?php echo $row->ID ?>]" value="<?php echo $row->PRODUCT ?>" /></td>
<td id="prijs"><input type="text" name="price[<?php echo $row->ID ?>]" value="<?php echo $row->PRICE ?>" /></td>
<td><input type="submit" name="Submit" value="update" /></td>
<input name="id[<?php echo $row->ID ?>]" type="hidden" value="<?php echo $row->ID ?>"/>
<input name="cat[<?php echo $row->ID ?>]" type="hidden" value="<?php echo $row->CAT ?>"/>
</tr>
<?php } ?>
</form>
if ($_POST['Submit'] == 'update') {
$product=$_POST['productnaam'];
$price=$_POST['price'];
$cat=$_POST['cat'];
$ID=$_POST['id'];
$update = "UPDATE " . $table_name ." SET PRODUCT = '" . $product ."', PRICE = '" .$price ."', CAT = '" . $cat ."' WHERE ID = '" . $ID . "'";
$results = $wpdb->query( $update );
}
我做错了什么?感谢百万的帮助。
答案 0 :(得分:0)
你必须遍历数组的每个元素。 由于表单中的输入是数组([]如[]或cat []或price [])
我会这样做:
if ($_POST['Submit'] == 'update') {
$products = $_POST['productnaam'];
$prices = $_POST['price'];
$cats = $_POST['cat'];
$IDs = $_POST['id'];
if (!empty($IDs) && is_array($IDs)) {
foreach ($IDs as $id) {
//a little check of existing values
$price = is_array($prices) && isset($prices[$id]) ? $prices[$id] : '';
$product = is_array($products) && isset($products[$id]) ? $products[$id] : '';
$cat = is_array($cats) && isset($cats[$id]) ? $cats[$id] : '';
$update = "UPDATE " . $table_name . " SET PRODUCT = '" . $product . "', PRICE = '" . $price . "', CAT = '" . $cat . "' WHERE ID = '" . $id . "'";
//here you have to check the return of the query
$results = $wpdb->query($update);
}
}
}
希望这有帮助:)