我的用户列表中存在此问题,dataTable服务器端工作正常,向我显示我拥有的所有用户我将按钮用于查看配置文件,编辑配置文件和删除配置文件。 ID位于href中并发送到确切的用户ID。唯一的一个错误就是当我尝试删除任何用户时... ajax我必须通过ID删除用户不要做任何事......请帮助我。
这是服务器端(仅限连接):
$aColumns = array( 'id_user', 'nombre', 'apellido', 'id_tipo');
/* Indexed column (used for fast and accurate table cardinality) */
$sIndexColumn = "id_user";
/* DB table to use */
$sTable = "USERS";
/* Database connection information */
$gaSql['user'] = "soft_chas";
$gaSql['password'] = "123456";
$gaSql['db'] = "soft_chas";
$gaSql['server'] = "localhost";
js dataTable:
$('#userTabla').dataTable( {
"bProcessing": true,
"bServerSide": true,
"sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span12'i><'span12 center'p>>",
"sAjaxSource": "server_processing.php",
"aoColumns": [
{ "mData": "id_user" },
{ "mData": "nombre" },
{ "mData": "apellido" },
{ "mData": "tipo" },
{
"mData": null,
"sClass": "center",
"sDefaultContent": "",
"fnRender": function (o) {
return '<a href="user_profile.php?id_user=' + o.aData[0] + '" class="btn btn-success"><i class="icon-user icon-white"></i> Ver perfil</a> <a href="user_edit.php?id_user=' + o.aData[0] + '" class="btn btn-info"><i class="icon-edit icon-white"></i> Editar</a> <a id="' + o.aData[0] + '" class="btn btn-danger" href="#"><i class="icon-trash icon-white"></i> Borrar</a>'
},
"aTargets": [3]
}
],
"sPaginationType": "bootstrap",
"oLanguage": {
"sLengthMenu": "_MENU_ registros por pag"
}
});
JS按ID删除用户:
$(document).ready(function()
{
$('table#userTabla td a.btn-danger').click(function(e)
{
if (confirm("<?php $translate->__("Do you really want to delete User's record?"); ?>"))
{
e.returnValue = false;
var id = $(this).attr('id');
var data = 'recordToDelete='+ id;
var parent = $(this).parent().parent();
$.ajax(
{
type: "POST",
url: "include/delete.php",
data: data,
cache: false,
success: function()
{
parent.fadeOut('slow', function() {$(this).remove();});
}
});
}
});
$('table#userTabla tr:odd').css('background',' #FFFFFF');
});
DELETE代码:
<?php
include_once("configs.php");
if(isset($_POST["recordToDelete"]) && strlen($_POST["recordToDelete"])>0 && is_numeric($_POST["recordToDelete"])) {
$idToDelete = filter_var($_POST["recordToDelete"], FILTER_SANITIZE_NUMBER_INT);
if($stmt = $conn->prepare("DELETE FROM USERS WHERE id_user = $idToDelete"))
$stmt->bindParam("$idToDelete", $id_user, PDO::PARAM_INT);
$stmt->execute();
}
$conn = null;
?>
页面中的表格:
<table class="table table-striped table-bordered bootstrap-datatable" id="userTabla" serverSide="true" processing="true">
<thead>
<tr>
<th>ID</th>
<th><?php $translate->__('Name'); ?></th>
<th><?php $translate->__('Last Name'); ?></th>
<th><?php $translate->__('Type'); ?></th>
<th><?php $translate->__('Actions'); ?></th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="5" class="dataTables_empty center"><i class="icon-refresh"></i><img src="img/ajax-loaders/ajax-loader-1.gif" title="ajax-loaders"> <?php $translate->__('Please wait'); ?> ...</td>
</tr>
</tbody>
</table>
答案 0 :(得分:2)
试试这个ajax js:
$(document).ready(function(){
$(document).delegate('.btn-danger', 'click', function() {
if (confirm("<?php $translate->__("Do you really want to delete User's record?"); ?>"))
{
var id = $(this).attr('id');
var data = 'recordToDelete='+ id;
var parent = $(this).parent().parent();
$.ajax({
type: "POST",
url: "include/delete.php",
data: data,
cache: false,
success: function()
{
parent.fadeOut('slow', function() {$(this).remove();});
}
});
}
});
$('table#userTabla tr:odd').css('background',' #FFFFFF');
});
答案 1 :(得分:0)
你的bindParam语句遇到了一些问题。检查documentation。 $ id_user未定义,您在bindParam中未使用命名参数。试试这个:
if($stmt = $conn->prepare("DELETE FROM USERS WHERE id_user = ?"))
$stmt->bindParam(1, $idToDelete, PDO::PARAM_INT);