Php $.ajax()函数返回整个页面,不能从数据库中删除行
我想使用ajax从记录中删除一行,但无法删除行和Php $.ajax()函数返回整个页面,不能从数据库中删除行,php,jquery,ajax,Php,Jquery,Ajax,我想使用ajax从记录中删除一行,但无法删除行和$。ajax()函数返回整个页面,而不是删除行 Html代码 <tbody> <tr class="gradeX odd"> <td class="sorting_1">2</td> <td class=" ">test</td> <td class=" ">test</td>
$。ajax()
函数返回整个页面,而不是删除行
Html代码
<tbody>
<tr class="gradeX odd">
<td class="sorting_1">2</td>
<td class=" ">test</td>
<td class=" ">test</td>
<td class="center ">0</td>
<td class="center ">Active</td>
<td class=" "><button type="button" class="btn btn-default btn-circle" name="editRecord"><i class="fa fa-pencil-square-o"></i></button>
<button type="button" class="btn btn-danger btn-default btn-circle" id="2" name="deleteRecord"><i class="fa fa-times"></i></button></td>
</tr>
<tr class="gradeX even">
<td class="sorting_1">3</td>
<td class=" ">sarees</td>
<td class=" ">contains sarres</td>
<td cl="center ">1</td>
<td class="center ">Active</td>
<td class=" "><button type="button" class="btn btn-default btn-circle" name="editRecord"><i class="fa fa-pencil-square-o"></i></button>
<button type="button" class="btn btn-danger btn-default btn-circle" id="3" name="deleteRecord"><i class="fa fa-times"></i></button></td>
</tr>
</tbody>
$(document.body).on('click', '[name="deleteRecord"]', function(){
var id= $(this).attr('id');
if(confirm('Are you sure ?')){
$.ajax({
type:'POST',
url:'admin_operation.php?mode=delete_category',
data: {id:id},
success:function(data) {
alert(data);
}
});
}
});
if($mode=='delete_category')
{
$id=$_POST['id'];
$q=$db->query("DELETE FROM db_category WHERE category_id='".$id."'");
if($q) {
echo "YES";
}
else
{
echo "NO";
}
}
Php代码
<tbody>
<tr class="gradeX odd">
<td class="sorting_1">2</td>
<td class=" ">test</td>
<td class=" ">test</td>
<td class="center ">0</td>
<td class="center ">Active</td>
<td class=" "><button type="button" class="btn btn-default btn-circle" name="editRecord"><i class="fa fa-pencil-square-o"></i></button>
<button type="button" class="btn btn-danger btn-default btn-circle" id="2" name="deleteRecord"><i class="fa fa-times"></i></button></td>
</tr>
<tr class="gradeX even">
<td class="sorting_1">3</td>
<td class=" ">sarees</td>
<td class=" ">contains sarres</td>
<td cl="center ">1</td>
<td class="center ">Active</td>
<td class=" "><button type="button" class="btn btn-default btn-circle" name="editRecord"><i class="fa fa-pencil-square-o"></i></button>
<button type="button" class="btn btn-danger btn-default btn-circle" id="3" name="deleteRecord"><i class="fa fa-times"></i></button></td>
</tr>
</tbody>
$(document.body).on('click', '[name="deleteRecord"]', function(){
var id= $(this).attr('id');
if(confirm('Are you sure ?')){
$.ajax({
type:'POST',
url:'admin_operation.php?mode=delete_category',
data: {id:id},
success:function(data) {
alert(data);
}
});
}
});
if($mode=='delete_category')
{
$id=$_POST['id'];
$q=$db->query("DELETE FROM db_category WHERE category_id='".$id."'");
if($q) {
echo "YES";
}
else
{
echo "NO";
}
}
$mode
应该是$\u GET['mode']
或者,将
url:'admin\u operation.php?mode=delete\u category',
更改为url:'admin\u operation.php',
并将数据:{id:id},
更改为数据:{id:id,mode:'delete\u category',
并设置$mode=$\u POST['mode]
如果这不起作用,那么您可能已经在向页面回显内容了。我们需要在文件其余部分的上下文中查看代码,以确定是否已经将内容回送到页面。另外,正如其他人所指出的,您应该
退出
在if块末尾或每次回显之后,以避免从文件后面返回代码。首先,需要在$.ajax
方法中设置数据类型
$.ajax({
type:'POST',
url:'admin_operation.php?mode=delete_category',
data: {id:id},
dataType: 'json', // <-----
success:function(data) {
console.log(data); // should be something like {'status' : 'YES'}
}
});
如果查询字符串中的($\u GET['mode'].=='delete\u category')//变量被视为$\u GET
{
$id=$_POST['id']
$q=$db->query("DELETE FROM db_category WHERE category_id='".$id."'");
if($q) {
echo "YES";
}
else
{
echo "NO";
}
}
当你在警报中有“是”或“否”的回应时,你只会得到那个
如果您想在删除之前存储已删除的行并回显..什么是$mode
模式?在一个页面中有很多删除操作,因此它会检查类别删除。我刚刚更新了答案,请尝试控制台.log(数据)
。它应该类似于{'status':'YES'}
您尝试过控制台.log(数据)吗
?如果是,请提供输出如何从数据库中删除行?如果($\u-get['mode'.='delete\u-category')//查询字符串中的变量被视为$\u-get{$id=$\u-POST['id'];无法理解您所说的内容。如果($mode='delete\u-category'){$id=$\u-POST['id'];//获取已删除的行值并存储在数组$deleted_Row;$sql=“SELECT*FROM db_category,其中category_id=”“$id.”“;$result=mysql_查询($sql);while($Row=mysql_fetch_assoc($result)){$deleted_Row=$Row;}$q=$db->query(“从db_类别中删除,其中类别_id=”“$id.”“”;if($q){echo$deleted_row;}else{echo“NO”;}admin_operation.php?mode=delete_category在此“?”之后,它被称为查询字符串。如果我们想获取该变量,它必须由$\u GETthank you访问,但它与您之前所说的相同。$mode=$\u GET['mode'];您好,我在页面顶部设置了这个。另外,根据您所说的“多个删除操作”,您可能应该在case/switch语句switch($mode){case'delete_category':…break;default:…break;}
这样一次只能操作一个。@JAL,这是作为查询字符串传递的,所以它应该在$\u GET中。