Javascript 尝试使用AngularJS函数删除MySQL条目

Javascript 尝试使用AngularJS函数删除MySQL条目,javascript,php,mysql,angularjs,Javascript,Php,Mysql,Angularjs,我已经到处找过了,但还没有找到与此完全匹配的,所以这里是。。。 我有一个简单的HTML页面,它使用AngularJS从MySQL表输出项目。但是现在我正在尝试创建一个函数,当用户单击按钮时,该函数将从数据库中删除该项。然而,现在,我的功能完全不起作用,我希望一双新的眼睛能帮我解决这个问题 下面是相关的HTML <body data-ng-controller="testController" ng-cloak> <table data-ng-init="getEntries

我已经到处找过了,但还没有找到与此完全匹配的,所以这里是。。。 我有一个简单的HTML页面,它使用AngularJS从MySQL表输出项目。但是现在我正在尝试创建一个函数,当用户单击按钮时,该函数将从数据库中删除该项。然而,现在,我的功能完全不起作用,我希望一双新的眼睛能帮我解决这个问题

下面是相关的HTML

<body data-ng-controller="testController" ng-cloak>

 <table data-ng-init="getEntries()">
   <thead>
     <tr>
       <th>ID</th>
       <th>First Name</th>
       <th>Last Name</th>
       <th>Email</th>
       <th>Action</th>
     </tr>
   </thead>
   <tbody>
     <tr data-ng-repeat="name in data">
       <td>{{name.id}}</td>
       <td>{{name.fname}}</td>
       <td>{{name.fname}}</td>
       <td>{{name.email}}</td>
       <td><input type="button" data-ng-click="deleteEntry(name.id)" value="X"></input>
     </tr>
   </tbody>
 </table>
<script src="angular.js"></script>
<script src="app.js"></script>
</body>
最后是PHP代码

<?php

  header("Access-Control-Allow-Origin: *");
  header("Content-Type: application/json; charset=UTF-8");
  $host = "localhost";
  $username = "visarts_testing";
  $password = "******";
  $dbname = "visarts_test";
  $tbl_name = "tested";

  //open a connection to the database
  $conn = mysqli_connect($host, $username, $password, $dbname);

  if(!$conn) {
    die("Connection failed: " . mysqli_connect_error());
  }

  //get action from the controller

  switch($_GET['action']) {
    case 'delete_entry' :
      delete_entry();
    break;
  }

  function delete_entry() {
    $data = json_decode(file_get_contents("php://input"));
    $index = $data->id;
    $delSQL = "DELETE FROM $tbl_name WHERE id = $index";
    if(mysqli_query($conn, $delSQL) {
      return true;
    } else {
      echo "Error: " . $sql . "<br />" . mysqli_error($conn);
    }
  }

  //close the db connection
  mysqli_close($conn);

?>

您必须返回带有错误代码(501)的响应。php代码返回有效的响应代码。(200-成功)

问题在于PHP的
if(mysqli_查询($conn,$delSQL){
产生错误。应该是
if(mysqli_查询($conn,$delSQL)){


请注意,在您的
post
之后调用了双参数
success
error
?我刚刚为success添加了一条控制台消息,正在调用success。因此,我猜错误在PHP方面……您从以下内容中得到了什么:
函数delete\u entry(){print\r(file\u get\u contents)(“php://input") );die();
您必须在开发工具或firebug中查看响应。好的,所以我将其添加到函数中。firebug发现了一个它不喜欢的语法错误,所以我修复了它。但是现在,仍然没有发生任何事情,尽管这是我在控制台中得到的:POST{“id”:“1”}虽然我现在看到这个消息来自我的app.js文件,而不是dbfunctions.php。我从来没有听说过这样的事情!我不认为这是真的。angular知道哪里出了问题吗?我说的是angular,不是php。这是一个模式web。哦,你刚才说要想触发angular中的
error
,他需要返回501个头,我明白了好的,你确定你成功地连接到数据库了吗?很确定,但老实说,我不知道如何通过编程检查。我对mySql和php非常陌生,如果不是很明显的话。我有另一个脚本,它从HTML页面获取表单输入,并将一个新行项目写入同一个表中——一切都差不多在我现在所做的工作中,相同的数据库,相同的表,唯一的区别是我从angular脚本文件中获取要传递的数据。
<?php

  header("Access-Control-Allow-Origin: *");
  header("Content-Type: application/json; charset=UTF-8");
  $host = "localhost";
  $username = "visarts_testing";
  $password = "******";
  $dbname = "visarts_test";
  $tbl_name = "tested";

  //open a connection to the database
  $conn = mysqli_connect($host, $username, $password, $dbname);

  if(!$conn) {
    die("Connection failed: " . mysqli_connect_error());
  }

  //get action from the controller

  switch($_GET['action']) {
    case 'delete_entry' :
      delete_entry();
    break;
  }

  function delete_entry() {
    $data = json_decode(file_get_contents("php://input"));
    $index = $data->id;
    $delSQL = "DELETE FROM $tbl_name WHERE id = $index";
    if(mysqli_query($conn, $delSQL) {
      return true;
    } else {
      echo "Error: " . $sql . "<br />" . mysqli_error($conn);
    }
  }

  //close the db connection
  mysqli_close($conn);

?>