当复选框被勾选时,我试图更新"row2"。当我一次只更新1行时,一切都很好,但当选择多行时,所有检查的行得到相同的值。
我正在寻找一种方法来添加一个id到textarea标签,所以多行可以用唯一的值更新。
我认为问题是db.config
中的$new_price
或我在action2.php
中更新数据库的方式
谢谢你给我指点方向的任何帮助。
index . php:
<form action="action2.php" id="bulk_action_form" method="post" name=
"bulk_action_form" onsubmit="return deleteConfirm();"></form>
<table class="bordered tablesorter" id="myTable">
<thead>
<tr>
<th class="th-class check-box"><input id="select_all" name=
"select_all" type="checkbox" value=""></th>
<th class="th-class">ID</th>
<th class="th-class">row2</th>
<th class="th-class">row3</th>
</tr>
</thead><?php
if(mysqli_num_rows($query) > 0){
while($row = mysqli_fetch_assoc($query)){
?>
<tr class="">
<td align="center" class="checkbox-td"><input class="checkbox"
height="30" name="checked_id[]" type="checkbox" value=
"<?php echo $row['id']; ?>" width="30"></td>
<td class="td-class"><?php echo $row['id']; ?></td>
<td class="td-class reg-anote">
<textarea class="text a-note" cols="10" id="confirmationText" name=
"confirmationText" rows="1">
<?php echo $row['row2']; ?>
</textarea></td>
<td class="td-class"><?php echo $row['row3']; ?></td>
</tr><?php } }else{ ?>
<tr>
<td colspan="5">No records found.</td>
</tr><?php } ?>
</table>
<form>
<input class="btn btn-danger" name="bulk_delete_submit" type="submit"
value="Delete"> <button name="price" type="submit">Submit</button>
</form>
action2.php:
<?php
session_start();
include_once('dbConfig.php');
if(isset($_POST['bulk_delete_submit'])){
$idArr = $_POST['checked_id'];
foreach($idArr as $id){
mysqli_query($conn,"DELETE FROM $TableName2 WHERE id=".$id);
}
}
if(isset($_POST['confirmationText'])){
$idArr = $_POST['checked_id'];
foreach($idArr as $id){
mysqli_query($conn,"UPDATE $TableName2 SET Column2 WHERE id=".$id);
}
}
?>
dbConfig.php:
<?php
$new_price = $_POST['confirmationText'];
$TableName2 = 'Table2';
$dbHost = 'localhost'; //database host name
$dbUser = 'username'; //database username
$dbPass = 'password'; //database password
$dbName = 'databasename'; //database name
$conn = mysqli_connect($dbHost,$dbUser,$dbPass,$dbName);
if(!$conn){
die("Database connection failed: " . mysqli_connect_error());
}
?>
你必须像下面这样改变textarea字段-
<textarea class="text a-note" cols="10" id="confirmationText" name=
"confirmationText[]" rows="1">
和In action2.php做必要的修改,如下-
<?php
session_start();
include_once('dbConfig.php');
if(isset($_POST['bulk_delete_submit'])){
$idArr = $_POST['checked_id'];
foreach($idArr as $id){
mysqli_query($conn,"DELETE FROM $TableName2 WHERE id=".$id);
}
}
if(isset($_POST['confirmationText'])){
$idArr = $_POST['checked_id'];
foreach($idArr as $key => $id){
mysqli_query($conn,"UPDATE $TableName2 SET Column2='".$new_price[$key]."' WHERE id=".$id);
}
}
?>