Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Php CRUD应用程序:使用Ajax删除行将返回整个页面_Javascript_Php_Jquery_Ajax_Twitter Bootstrap - Fatal编程技术网

Javascript Php CRUD应用程序:使用Ajax删除行将返回整个页面

Javascript Php CRUD应用程序:使用Ajax删除行将返回整个页面,javascript,php,jquery,ajax,twitter-bootstrap,Javascript,Php,Jquery,Ajax,Twitter Bootstrap,我已经使用PHP和Bootstrap制作了一个CRUD应用程序 我的delete_record.php文件包含以下代码: <?php include("includes/header.php"); include("includes/nav.php"); if (isset($_GET['mid'])) { $sql = "DELETE FROM medical_records WHERE mid = " . $_GET['mid']; //echo $sql; if (m

我已经使用PHP和Bootstrap制作了一个CRUD应用程序

我的delete_record.php文件包含以下代码:

<?php

include("includes/header.php");
include("includes/nav.php");

if (isset($_GET['mid'])) {
  $sql = "DELETE FROM medical_records WHERE mid = " . $_GET['mid'];
  //echo $sql;
  if (mysqli_query($con, $sql)) {
    //header("Location: {$_SERVER['HTTP_REFERER']}");
    echo "Record successfully deleted";
  } else {
    echo "Error: " . mysqli_error($con);
  }
}?>
<?php include("includes/footer.php"); ?>
我已经把它注释掉了,以便“简化”这个过程。为此,我使用了:

$('.delete-icn').on('click', function(evt){
    evt.preventDefault();
    var mid = $(this).data('mid');

    if(confirm('Are you sure you want to delete?')) {
        $.ajax({
            url: 'delete_record.php?mid=' + mid,
            method: 'GET',
            data: {mid:mid},
            success: function(deleteMsg){
                $('#delete_msg').slideDown(250);
                $('#delete_msg').text(deleteMsg);
            }
        });
    }
});
但这不仅不会删除记录,还会返回警报段落标记内整个页面的html,而不是仅返回“记录已成功删除”

错在哪里?谢谢大家!

更新: 在delete_record.php文件中,我只保留了:

if (isset($_GET['mid'])) {
   $sql = "DELETE FROM medical_records WHERE mid = " . $_GET['mid'];
   if (mysqli_query($con, $sql)) {
     //header("Location: {$_SERVER['HTTP_REFERER']}");
     echo "Record successfully deleted";
   } else {
    echo "Error: " . mysqli_error($con);
   }
}?>

因此没有发生重大变化。

使用
mysqli\u受影响的行
检查
DELETE
查询是否有效

示例(来自php.net)


好的,你的答案可能很好,但这里有个问题。当有人呼叫
http://example.com/delete_record.php?mid=1&20OR%201%3D1
?回答:您执行以下查询,并且您的整个数据库将被清除

DELETE FROM medical_records WHERE mid = 1 OR 1=1;
尝试改用:


您正在使用GET和POST;使用一个。您还正在执行其他php文件的include()。。。。如果您只需要echo,那么只需要echo。我已将方法“POST”更改为方法“GET”,但仍然返回delete_record.php的整个代码。remove
header.php
nav.php
footer.php
我已更改,但没有发生重大更改。delate操作的php部分工作正常,它在ajax部分之前工作。Comment redirect header和inspect元素以查看是否仍然得到

delete_record.php
页面上的标签?好的,包括(“functions/init.php”);delete_record.php顶部缺少(它是header.php中包含的“normaly”,我从delete_record.php中排除了它),但还有一件事:records_all.php文件(显示所有记录)不会更新(再次渲染),除非我重新引用页面。我使用数据表很好地显示记录。使用
AJAX
页面不会自动刷新。
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>
DELETE FROM medical_records WHERE mid = 1 OR 1=1;
<?php
include("functions/init.php");
if (isset($_GET['mid'])) {
    $sql = "DELETE FROM medical_records WHERE mid = ?";
    $stmt = $con->prepare($sql);
    $stmt->bind_param("i", $_GET["mid"]);
    if ($stmt->execute()) {
        echo "Fisa a fost stearsa.";
    } else {
        echo "Error: $stmt->error";
    }
}