使用jquery通过复选框更新数据

时间:2014-02-21 07:17:20

标签: javascript php jquery mysql checkbox

我无法让这个工作。我需要更新mysql中已选中复选框的列的值。当我单击按钮时,它应该更新已选中复选框的值。这是 editLayout.php 的代码:

<form action="updateLayout.php" method="POST">
<input name="update" type="SUBMIT" value="Update" id="update">
<?php       
$x = 'seats';

$linkID = @ mysql_connect("localhost", "root", "Newpass123#") or die("Could not connect to MySQL server");
@ mysql_select_db("seatmapping") or die("Could not select database");

/* Create and execute query. */
$query = "SELECT * from $x order by rowId, columnId desc";
$result = mysql_query($query);
$prevRowId = null;
$seatColor = null;
$tableRow = false;

//echo $result;
echo "<table class='map'>";
while (list($rowId, $columnId, $status, $name, $seatid) = mysql_fetch_row($result))
{
if ($prevRowId != $rowId) {
    if ($rowId != 'A') {
        echo "</tr></table></td>";
        echo "\n</tr>";
    }
    $prevRowId = $rowId;
    echo "\n<tr><td align='center'><table><tr>";
} else {
    $tableRow = false;
}
if ($status == 0) {
    $seatColor = "#A6E22E";
} 
else if ($status == 1){
    $seatColor = "#D34836";
}
else if ($status == 2){
    $seatColor = "#00A0D1";
}

echo "\n<td bgcolor='$seatColor'>";
echo $seatid;
echo "<input type='checkbox' name='seats[]' id='seats' value=".$seatid.">  </checkbox>";
echo "</td>";
}
echo "</tr></table></td>";
echo "</tr>";
echo "</form>";
echo "</table>";

/* Close connection to database server. */
mysql_close();
?>

这是我的代码,用于驻留在不同页面上的jquery( functions.js )。我已将其包含在标题中:

jQuery(function($) {
$("form input[id='update']").click(function() {

    var count_checked = $("[name='seats[]']:checked").length;
    if(count_checked == 0) {
        alert("Please select product(s) to update.");
        return false;
    }
    if(count_checked == 1) {
        return confirm("Are you sure you want to update these product?");
    } else {
        return confirm("Are you sure you want to update these products?");
      }
});
});

这是我的 updateLayout.php 。:

 <?php
$db = mysql_connect("localhost", "root", "Newpass123#");
if(!$db) { echo mysql_error(); }
$select_db = mysql_select_db("seatmapping");
if(!$select_db) { echo mysql_error(); }

if(isset($_POST['update'])) {
$id_array = $_POST['seats'];
$id_count = count($_POST['seats']);

for($i=0; $i < $id_count; $i++) {
    $id = $id_array[$i];
    $query = mysql_query("Update `seats` set `status`='2' where  `seatid`='$seatid'");
    if(!$query) { die(mysql_error()); }
}
header("Location: editLayout.php");
}
?>

我正在使用 jquery 1.11.0 。我知道这里有很多sql注入,我仍然使用mysql但是我打算一旦我开始工作就改变它。任何形式的帮助都表示赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的更新查询未使用正确的更新值。你使用'$ seatid',它没有在任何地方声明。你应该使用'$ id'。

更改

for($i=0; $i < $id_count; $i++) {
    $id = $id_array[$i];
    $query = mysql_query("Update `seats` set `status`='2' where  `seatid`='$seatid'");
    if(!$query) { die(mysql_error()); }
}

进入

for($i=0; $i < $id_count; $i++) {
    $id = $id_array[$i];
    $query = mysql_query("Update `seats` set `status`='2' where  `seatid`='$id'");
    if(!$query) { die(mysql_error()); }
}