AJAX JQuery从数据库中删除

时间:2013-03-05 21:23:48

标签: jquery

我正在尝试从php中创建的表中删除动画行。

我是AJAX和JQuery的菜鸟,我似乎无法看到我出错的地方。我也尝试按照我获得代码http://davidwalsh.name/animated-ajax-jquery的网站,但似乎发生的事情是当我点击删除链接时没有任何反应。

这是我的delete.php

  // connect to the database
  $dbConn = odbc_connect("flamingo","","")
    or die("Error opening database .... use the browsers BACK button");

  if (isset($_GET['id']))
  {
  $id = $_GET['id'];

  $result = odbc_exec($dbConn,"DELETE FROM prodList WHERE prodCode='$id'")
    or die("ERROR: Cannot Delete Record!");
  }

这是我的HTML

    <html>
   <head>
      <title>Delete a Flamingo Product from the list</title>
      <script src="script/jquery-1.9.1.min.js" type="text/javascript"></script>
      <script type="text/javascript">
        $(document).ready(function() {
  $('a.delete').click(function(e) {
    e.preventDefault();
    var parent = $(this).parent("td").parent("tr");
    $.ajax({
      type: 'get',
      url: 'delete.php',
      data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
      beforeSend: function() {
        parent.animate({'backgroundColor':'#fb6c6c'},300);
      },
      success: function() {
        parent.slideUp(300,function() {
          parent.remove();
        });
      }
    });
  });
});
      </script>
   </head>

<body>
<b><font color="#000099"><font size=+2>Flamingo Product List&nbsp;</font></font></b>
&nbsp;&nbsp;&nbsp;&nbsp;<img SRC="pinkflamingo.gif" NOSAVE height=85 width=61>
<p>


<?php

    /* script to list all the products in the prodList table
        use default ODBC connection
        variables
         $dbConn   - database connection
         $sqlQuery - a query string
         $dbResult - result of a, SQL query
         $rows     - number of rows
    */

    // connect to the database
    $dbConn = odbc_connect("flamingo","","")
      or die("Error opening database .... use the browsers BACK button");

    //Veiw record and delete

        $result = odbc_exec($dbConn,"SELECT * FROM prodList ORDER BY prodCode")
      or die("Error Retrieving Product Listing");

    echo "<table border='1' cellpadding='10'>";
    echo "<tr>
    <th><font color='Red'>Code</font></th>
    <th><font color='Red'>Name</font></th>
    <th><font color='Red'>Description</font></th>
    <th><font color='Red'>Price</font></th>
    <th><font color='Red'>Delete</font></th>
    </tr>"; 

    while($row = odbc_fetch_row( $result ))
    {

    echo '<tr class="record" id="record-',$row['item_id'],'">';
    echo '<td><b><font color="#663300">' . odbc_result ($result, "prodCode") . '</font></b></td>';
    echo '<td><b><font color="#663300">' . odbc_result ($result, "prodName") . '</font></b></td>';
    echo '<td><b><font color="#663300">' . odbc_result ($result, "prodDesc") . '</font></b></td>';
    echo '<td><b><font color="#663300">' . odbc_result ($result, "prodPrice") . '</font></b></td>';
    echo '<td><b><font color="#663300"><a href="?delete=',$row['item_id'],'" class="delete">Delete</a></font></b></td>';
    echo "</tr>";

}

echo "</table>";
?>

你能看到我出错的地方,看看我能做些什么来解决这个问题。

由于

1 个答案:

答案 0 :(得分:0)

我相信你的问题就在于这条线:

var parent = $(this).parent("td").parent("tr");

$(this) 可能会返回JQuery $('a.delete').click(function(e) {}
尝试在HTML标记中使用id,这样就可以选择以下元素:

 $('#element_id')

这可以让您更好地控制自己选择的内容。