Php 删除后不刷新表显示
大家好,我只是想在我的表格显示上寻求您的帮助,在我按下表格行上的delete图标后,我按下要删除的行仍然在那里,尽管在数据库上它已经被删除了。页面没有刷新 这是我的桌号Php 删除后不刷新表显示,php,jquery,ajax,Php,Jquery,Ajax,大家好,我只是想在我的表格显示上寻求您的帮助,在我按下表格行上的delete图标后,我按下要删除的行仍然在那里,尽管在数据库上它已经被删除了。页面没有刷新 这是我的桌号 <div id="display" align="left"></div> 这是ajax脚本 <script type="text/javascript"> function deletedata(str){ var med_id = str; $.ajax({ type: "G
<div id="display" align="left"></div>
这是ajax脚本
<script type="text/javascript">
function deletedata(str){
var med_id = str;
$.ajax({
type: "GET",
url: "deletedata.php?med_id="+med_id,
}).done(function( data ) {
});
}
</script>
这是我的demo_insert.php
<?php
$dbHost = 'localhost'; // usually localhost
$dbUsername = 'root';
$dbPassword = 'thartpc';
$dbDatabase = 'hospital';
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server.");
mysql_select_db ($dbDatabase, $db) or die ("Could not select database.");
$sql_check = mysql_query("SELECT * FROM messages order by med_id desc");
if(isSet($_POST['content2']))
{
$content2=$_POST['content2'];
$content3=$_POST['content3'];
$content4=$_POST['content4'];
mysql_query("insert into messages(medname, quantity, patientid) values ('$content2','$content3','$content4')");
$sql_in= mysql_query("SELECT * FROM messages order by med_id desc");
$r=mysql_fetch_array($sql_in);
}
?>
<?php
require_once 'config.php';
$query = mysql_query("SELECT * FROM messages where patientid = '$content4'order by med_id desc") or die ("could not search");
$count = mysql_num_rows($query);
?>
<div class="panel panel-info">
<div class="panel-heading"><class="panel-title"><h7>Transaction</h7></div>
<div class="panel-body" style="padding-top:30px">
<?php
echo "<table class='table table-hover';>
<tr>
<th style='border:1px solid; color:gray' align='center'> ID</th>
<th style='border:1px solid; color:gray' align='center'>Patient ID</th>
<th style='border:1px solid; color:gray' align='center'>Item(s)</th>
<th style='border:1px solid; color:gray' align='center'>Price</th>
<th style='border:1px solid; color:gray' align='center'>Quantity</th>
<th style='border:1px solid; color:gray' align='center'>Amount</th>
</tr>";
while($row = mysql_fetch_array($query))
{
echo "
<tr>
<td style='border:1px solid; color:gray' align='center'>".$row['med_id']."</td>
<td style='border:1px solid; color:gray' align='center'>".$row['patientid']."</td>
<td style='border:1px solid; color:gray' align='center'>".$row['medname']."</td>
<td style='border:1px solid; color:gray' align='center'>".$row['quantity']."</td>
<td style='border:1px solid; color:gray' align='center'>".$row['quantity']."</td>
<td style='border:1px solid; color:gray' align='center'>".$row['quantity']."</td>
"
?>
<td style='border:1px solid; color:gray' align='center'><a class="btn btn-danger btn-sm" onclick="deletedata('<?php echo $row['med_id']; ?>')"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a></td>
</tr>
<?php
}
echo "</table>";
?>
</div>
</div>
这是我的表删除查询
<?php
include "getconnect.php";
if(isset($_GET['med_id'])){
$stmt = $conn->prepare("delete from messages where med_id=?");
$stmt->bind_param('s', $med_id);
$med_id = $_GET['med_id'];
$stmt->execute();
如果页面未重新加载,则可以手动删除 例如,假设您的行id或其他内容是第123行 您需要按如下方式更改代码
<script type="text/javascript">
function deletedata(str){
var med_id = str;
$.ajax({
type: "GET",
url: "deletedata.php?med_id="+med_id,
}).done(function( data ) {
//add this code
$("#row123").remove();
});
}
</script>
完成处理后,只需添加此项。试着把它放在你的“完成”函数中
location.reload();
将Id属性添加到与$row['med_Id']相同的行中。我在行中添加了一个data attributedata delete,以便我们知道要删除哪个id。 您将需要从我下面的代码中为按钮添加一个类 你需要做什么
<?php
while ($row = mysql_fetch_array($query)) {
echo "
<tr>
<td id='" . $row['med_id'] . "' style='border:1px solid; color:gray' align='center'>" . $row['med_id'] . "</td>
<td style='border:1px solid; color:gray' align='center'>" . $row['patientid'] . "</td>
<td style='border:1px solid; color:gray' align='center'>" . $row['medname'] . "</td>
<td style='border:1px solid; color:gray' align='center'>" . $row['quantity'] . "</td>
<td style='border:1px solid; color:gray' align='center'>" . $row['quantity'] . "</td>
<td style='border:1px solid; color:gray' align='center'>" . $row['quantity'] . "</td>
"
?>
<td style='border:1px solid; color:gray' align='center'>
<a class="delete-button btn btn-danger btn-sm" data-delete="<?php echo $row['med_id']; ?>">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
</a>
</td>
</tr>
<?php } ?>
在脚本上执行以下操作
<script type="text/javascript">
//listen to a click even for the button
$(document).ready(function () {
$('.delete-button').click(function () {
//this will be the id for the data to be deleted on the database
var med_id = $(this).data('delete');
$.ajax({
type: "GET",
cache: false,
dataType: "json",
url: "deletedata.php?med_id=" + med_id,
success: function (deletedID) {
$("tr#" + deletedID).remove();
}, error: function (xhr, ajaxOptions, thrownError) {
alert("an error occured. delete was not successful :( ");
}
});
});
});
</script>
将其添加到delete查询以返回json有效数据,该数据将是已删除行的id
<?php
include "getconnect.php";
if (isset($_GET['med_id'])) {
$med_id = $_GET['med_id'];
$stmt = $conn->prepare("delete from messages where med_id=?");
$stmt->bind_param('s', $med_id);
$stmt->execute();
echo json_encode($med_id);
die();
}
?>
那么,您的代码在哪里删除表中的行呢?嗯,这只是一个关于发生了什么的小细节,您能给我们展示一个JSFIDLE吗?我的猜测是:从domjs中删除元素或刷新page@Romeo我只是想指出。有像datatables.net这样的优秀库,它们具有非常高级的功能。如果你想找一个更全面的方法,你应该看看它。现在,对于您的问题,您可以添加一个行id,该id与您传递给dbi的id相同。我更新了我的帖子并添加了我的表格查询添加了表格删除查询当我添加此-location.reload;-它刷新页面,但在页面上丢失我的表格显示。事实上,当我加载页面时,还没有表格显示,它会在单击按钮后显示。我添加了表格删除查询有什么区别吗?添加时-$$med_id.remove;仍然相同,该行未在页面显示中删除。是的,如果您的行id实际上是$mem_id,则需要在$mem_id之前添加,因为您的行id不是$mem_id,实际上该行已在数据库中删除,但在页面显示中仍然存在。没有刷新页面就没有实时操作i added table delete querymy button id为v,因此当我替换$v.clickfunctionevent时,它不起作用,也不会删除数据库中的项。我添加了table delete querysomething,在.remove,括号颜色变为浅黄色,直到结束脚本。不是work@Romeo我正在使用一部手机,试着调整一下。这会管用的,罗密欧,这会管用的。我已经模拟了相同的功能,它的工作状态不需要我删除这个-函数deletedatastr{var med_id=str;或者使用$'td>a.btn.在它之后插入。单击函数{var med_id=$this.attr'data-id'?是的,它不再需要了是的,它在数据库中被删除了,但在页面上没有。你只要扭转我的顾虑,呵呵,它应该是数据库和页面上的。顺便说一句,我还传输了脚本代码,在数据库查询下面。在脚本出现在索引页面之前。替换
while($row = mysql_fetch_array($query)) {
echo '<tr>
<td>....</td>
<td><a class="btn" data-id="'.$row['med_id'].'" /></td>
</tr>';
}
$('td > a.btn').click(function(){
var med_id = $(this).attr('data-id');
$.ajax({
....
});
$(this).parents('tr').remove();
});