2013-03-05 139 views
0

我试图从在php中创建的表中获取动画行删除。从数据库中删除AJAX JQuery

我是AJAX和JQuery的noob,我似乎无法看到我出错的地方。我也试图按照我得到的代码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>"; 
?> 

你能看到我已经错了,看看我能做些什么来解决这个问题。

感谢

+0

纯粹的jQuery不能动画颜色。你需要一个插件。 – 2013-03-05 21:27:23

回答

0

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

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

$(this)可能是返回JQuery $('a.delete').click(function(e) {}
尝试在你的HTML代码中使用的ID,所以你可以选择这样的元素:

$('#element_id') 

这可以给你更多的控制权,你选择什么。

+0

这个问题是与该行,但我只是要删除TD和TR – user2137546 2013-03-07 10:59:43

+0

太棒了!有时候,“这个”可能非常棘手。通常我会做$(父).each(pos,element){alert(pos +“ - ”+ element);'看看里面有什么。 – 2013-03-07 12:21:50