使用JQuery和PHP删除表行

时间:2011-06-27 14:50:04

标签: javascript php ajax html-table

对于PHP,Javascript和AJAX,我是新手,很抱歉,如果这是一个简单的问题。我正在搞插件;在这个插件中我正在用PHP开发一个表。用户可以添加指向特定小部件的链接以显示在其主页上。我试图用Javascript和AJAX创建一个函数,从列表和数据库中删除一行。我试图为每个TR分配一个唯一的ID,但我不确定如何做到这一点..这是我的代码:

<table id="links" width="350px" border="1">
    <tr>
        <td></td>
        <td><b>Display</b></td>
        <td><b>Link *</b></td>
        <?php       

        if ( isset($_POST['links']) ) {

            $displays = $_POST['displays'];
            $links = $_POST['links'];
            $domain = $_POST['domain'];

            foreach($links as $i => $link) {
                if ( empty($displays[$i]) )
                    $displays[$i] = "";
                if( empty($links[$i]))
                    unset($links[$i]);

            }


            $autodomain = array('displays' => $displays, 'links' => $links, 'domain' => $domain);

            $options = get_option("autodomain_links") or array();
            $options[] = $autodomain;
            //$dump = array();
            update_option("autodomain_links",  $options);

        }
        $options = get_option("autodomain_links");

        if ($options) {

            foreach($options as $option) if ($tmp++ < 15) {

                $displays = $option['displays'];
                $links = $option['links'];
                $domain = $option['domain'];
                foreach($links as $i => $link) 
                {
                    echo '<tr>';
                    echo '<td><a href="#" class="delete"/><img alt="" border="0" src="https://jarkin.its-express-tst.syr.edu/wp-content/uploads/2011/06/delete.png" /></a></td>';
                    echo '<td>' . $displays[$i] . '</td>';
                    echo '<td>' . $link . ' ' . $domain . '</td>';
                    echo '</tr>';
                ;

                }

            }

        }


        ?>

</table>

这是Javascript / AJAX:

<script type="text/javascript" >
$(document).ready(function()
        {
            $('table#links td a.delete'').click(function()
            {
                if (confirm("Are you sure you want to delete this row?"))
                {
                    var id = $(this).parent().parent().attr('id');
                    var data = 'id=' + id ;
                    var parent = $(this).parent().parent();

                    $.ajax(
                    {
                           type: "POST",
                           url: "delete_row.php",
                           data: data,
                           cache: false,

                           success: function()
                           {
                                parent.fadeOut('slow', function() {$(this).remove();});
                           }
                     });                
                }
            });
        });
</script>

Javascript / ajax使用Table id和TR id作为父ID来标识行 - 但由于我使用PHP,我不知道如何为每个TR生成唯一ID。

2 个答案:

答案 0 :(得分:2)

您可以按$i

定义它
       foreach($links as $i => $link) 
        {
            echo '<tr id="id_'.$i.'">'; //<--here
            echo '<td><a href="#" class="delete"/><img alt="" border="0" src="https://jarkin.its-express-tst.syr.edu/wp-content/uploads/2011/06/delete.png" /></a></td>';
            echo '<td>' . $displays[$i] . '</td>';
            echo '<td>' . $link . ' ' . $domain . '</td>';
            echo '</tr>';
        ;

        }

然后每行的ID为id_{rowNumber}

答案 1 :(得分:0)

您可以使用mt_rand()之类的函数为每行生成唯一的字符串。或者只是使用计数器为行生成一系列数字。