0
首先,我想道歉如果有任何重複的問題。PHP - 無法使用複選框刪除MySQL行(無形式)
正如標題所說,我試圖刪除用戶在jQuery
幫助下檢查的多行。不幸的是,我沒有完成這項任務。
下面是我使用的代碼:==>
的index.php - >顯示在表格格式的數據..
<?php
require_once '../../Classes/class.Validation.php';
$validate = new Validation('ecommerce');
$qu = "SELECT ProdCode, ProdName, ProdDescription, ProdRate, ProdTotalQuantity, ProdAvailability FROM products";
$validate->Query($qu);
if ($validate->NumRows()) {
?>
<div class="container-fluid">
<div class="table-responsive">
<table border="1" class="table table-bordered table-striped">
<thead>
<tr>
<th><input type="checkbox" id="all" name="deletePrd[]"></th>
<th>Prod-Image</th>
<th>Prod-Code</th>
<th>Prod-Name</th>
<th>Prod-Description</th>
<th>Prod-Rate</th>
<th>Prod-Quantity</th>
<th>Prod-Availability</th>
<th>Action</th>
</tr>
<tr>
<th> </th>
<th> </th>
<th>
<input class="filter" name="Pro-Code" placeholder="Prod-Code" data-col="Prod-Code">
</th>
<th>
<input class="filter" name="Prod-Name" placeholder="Prod-Name" data-col="Prod-Name">
</th>
<th>
<input class="filter" name="Prod-Description" placeholder="Prod-Description" data-col="Prod-Description">
</th>
<th>
<input class="filter" name="Prod-Rate" placeholder="Prod-Rate" data-col="Prod-Rate">
</th>
<th>
<input class="filter" name="Prod-Total-Quantity" placeholder="Prod-Quantity" data-col="Prod-Quantity">
</th>
<th>
<input class="filter" name="Prod-Availability" placeholder="Prod-Availability" data-col="Prod-Availability">
</th>
<th> </th>
</tr>
</thead>
<tbody>
<?php
while ($row = $validate->FetchAllDatas()) {
echo '<tr>
<td><input type="checkbox" id="'.$row["ProdCode"].'" name="deletePrd[]"></td>
<td>
<img src="http://www.example.com/ECommerce/Images/Products/'
.$row["ProdCode"].'.jpg" alt="'.$row["ProdName"].'"
width="75" height="50" />
</td>
<td>' . $row["ProdCode"] . '</td>
<td>' . $row["ProdName"] . '</td>
<td>' . $row["ProdDescription"] . '</td>
<td>' . $row["ProdRate"] . '</td>
<td>' . $row["ProdTotalQuantity"] . '</td>
<td>' . $row["ProdAvailability"] . '</td>
<td>
<a href="http://www.example.com/ECommerce/Administrators/Products/UpdateProduct.php?prd='.$row["ProdCode"].'">UPDATE</a><br /><a href="http://www.example.com/ECommerce/ActionFiles/DeleteProduct.php?prd='.$row["ProdCode"].'">DELETE</a>
</td></tr>';
}
?>
</tbody>
</table>
</div>
</div>
<?php
} else {
echo '<p class="lead">No Products. Start inserting by clicking <a href="http://www.example.com/ECommerce/Administrators/Products/AddProducts.php">here</a></p>';
}
?>
下面是我使用上點擊鏈接按鈕:==>
<a class="btn btn-link" id="del" name="DeleteLink">DELETE</a>
這裏是jQuery代碼中刪除的產品:==>
$("a[id='del']").click(function() {
var count_checked = $("[name='deletePrd[]']:checked").length;
var checkedCode = $("[name='deletePrd[]']:checked").attr("id");
if(count_checked == 0) {
alert("Please select product(s) to delete.");
return false;
}
if(count_checked == 1) {
//return confirm("Are you sure you want to delete this product ?");
if (confirm('Are you sure you want to delete this product ?')) {
$("a[id='del']").attr("href", "http://www.example.com/ECommerce/ActionFiles/DeleteProduct.php?prdCode=" + checkedCode);
}
} else if(count_checked > 1) {
if (confirm('Are you sure you want to delete the selected products ?')) {
$("a[id='del']").attr("href", "http://www.example.com/ECommerce/ActionFiles/DeletedSelectedProducts.php");
for (var i = 0; i < count_checked; i++) {
console.log(i);
}
}
}
});
這裏的PHP代碼中刪除的產品:==>
DeletedSelectedProducts.php:
<?php
session_start();
require_once '../Classes/class.Validation.php';
$validate = new Validation('developi_ecommerce');
if (isset($_POST['DeleteLink']) && isset($_POST['deletePrd'])) {
$delete = $_POST['deletePrd'];
$res = "";
foreach ($delete as $code) {
$q = "DELETE FROM products WHERE ProdCode = '".$code."' ";
$res = $validate->Query($q);
}
if (!$res) {
echo '<br />Not Deleted';
} else {
echo '<br />Deleted';
}
} else {
echo 'Product Not Set';
}
if ($validate->IsConnected()) {
$validate->DisConnect();
}
我試過了,我得到'Product not set'
作爲輸出。
我很確定,我犯了一個錯誤,但我無法檢測到它。請幫助我,並嘗試幫助我糾正它。
謝謝您提前。
P.S.我已經嘗試並測試了單個產品刪除和所有產品刪除,並且它完美地工作,沒有任何錯誤。
更新1
下面是更新的jQuery與AJAX:==>
$("a[id='del']").click(function() {
var count_checked = $("[name='deletePrd[]']:checked").length;
var checkedCode = $("[name='deletePrd[]']:checked").attr("id");
if(count_checked == 0) {
alert("Please select product(s) to delete.");
return false;
}
if(count_checked == 1) {
//return confirm("Are you sure you want to delete this product ?");
if (confirm('Are you sure you want to delete this product ?')) {
$("a[id='del']").attr("href", "http://www.example.com/ECommerce/ActionFiles/DeleteProduct.php?prdCode=" + checkedCode);
}
} else if(count_checked > 1) {
if (confirm('Are you sure you want to delete the selected products ?')) {
/*$("a[id='del']").attr("href", "http://www.developigner.com/ECommerce/ActionFiles/DeletedSelectedProducts.php");
for (var i = 0; i < count_checked; i++) {
console.log(i);
}*/
$("a[id='del']").
attr("href", "http://www.developigner.com/ECommerce/ActionFiles/DeletedSelectedProducts.php").
ajax({
type: "post",
data: count_checked.serialize(),
success: function() {
alert(count_checked);
}
});
}
}
});
沒有形式,無論是油潑st數據使用ajax onClick或通過逗號分隔的多個選定的ids作爲查詢參數在URL上 – GBD 2014-11-22 06:46:42
我該怎麼做?事情是,我是一個初學者在這 – 2014-11-22 06:48:16
請這樣:http://stackoverflow.com/questions/20543722/ajax-post-within-jquery-onclick – GBD 2014-11-22 06:52:27