【问题标题】:Ajax delete data from database function not workingAjax从数据库功能中删除数据不起作用
【发布时间】:2014-05-19 01:41:57
【问题描述】:

我创建了一个 AJAX,可以存储和删除数据库中的数据。添加数据工作正常,当页面已经刷新时删除功能工作正常,但当新添加数据或页面未刷新时删除不起作用。

这就是它的工作原理。添加新数据时,将显示数据,用户可以选择是否删除数据。数据有一个“X”来确定它是一个删除按钮。现在,删除仅在页面刷新时有效。

这是我的 SAVING 脚本,你可以看到如果保存成功,它会自动显示数据,以及具有删除功能的 span。

$("#wordlistsave").click(function()
                {

                    var user = $("#getUser").val();
                    var title = $("#wordbanktitle").val();
                    var words = $("#wordbanklist").val();
                    var postID = $("#getPostID").val();

                    var ctrtest = 2;
                    var testBoxDiv = $(document.createElement('div'))
                                        .attr("id", words);
                    var dataString = 'user='+user+'&title='+title+'&words='+words+'&id='+postID;

                        <?php if (is_user_logged_in()): ?>

                                $.ajax({ 
                                    type: "POST",
                                    url: "<?=plugins_url('wordlistsave.php', __FILE__ )?>",
                                    data: dataString,
                                    cache: false,
                                    success: function(postID)
                                    {

                                        testBoxDiv.css({"margin-bottom":"5px"});
                                        testBoxDiv.after().html('<span id="'+words+'" style="cursor:pointer">x '+postID+'</span>&nbsp&nbsp<input type="checkbox" name="words[]" value="'+ words+ '">'+words );
                                        testBoxDiv.appendTo("#test_container"); 

                                        ctrtest++;

                                    }
                                });



                        <?php else: ?>
                                alert('Fail.');
                        <?php endif; ?>



                });    

这是我的删除功能,当用户点击“X”跨度时,数据将被删除,但只有在页面刷新后才有效。

$("span").click(function()
                {
                    var queryword=$(this).attr('id');
                    var postIDdel = $("#getPostID").val();
                    var dataString = 'queryword='+queryword+'&postID1='+postIDdel;

                    <?php if (is_user_logged_in()): ?>

                            $.ajax({
                                type: "POST",
                                url: "<?=plugins_url('worddelete.php', __FILE__ )?>",
                                data: dataString,
                                cache: false,
                                success: function(html)
                                {
                                    $('div[id="'+queryword+'"]').remove();

                                }


                            });

                    <?php else: ?>

                    <?php endif; ?>

                });      

这是我的 HTML,用于查询数据和显示数据。

<?php 

                                        global $wpdb;

                                        $query_wordbanklist = $wpdb->get_results("SELECT meta_value, meta_id FROM wp_postmeta WHERE post_id = '$query_id' AND meta_key = '_wordbanklist'");


                                        if($query_wordbanklist != null)

                                        {
                                            echo "<h3> Wordlist </h3>";
                                            foreach($query_wordbanklist as $gw)
                                            {

                                    ?>          <div id="<?php echo $gw->meta_value ?>">
                                                <span id="<?php echo $gw->meta_value ?>" style="cursor:pointer">x</span> &nbsp&nbsp<input type="checkbox" name="words[]"  value="<?php echo $gw->meta_value ?>"><?php echo $gw->meta_value; ?>
                                                </div>
                                        <?php       
                                            }

                                        }   
                                    ?>

我想要实现的只是让删除功能在数据存储后立即工作。现在它只在页面刷新时有效。对此有什么想法吗?

【问题讨论】:

  • 所以你对保存这个词没有问题,它只是删除?
  • 是的,页面刷新的时候删除没有问题,只有数据添加了右保存才有问题。

标签: javascript php jquery ajax


【解决方案1】:

也许试试这个...

$(document).on('click', 'span', function() {
     // delete stuff in here
}

【讨论】:

  • 这行得通,但是与 $("span").click(function() 的区别是什么?谢谢
  • 通过上述方法,您将点击事件绑定到文档。当您通过 ajax 加载新内容时,DOM 不知道它在那里,这就是为什么它不适合您
  • 如果clickon 的区别在此stackoverflow.com/questions/8018760/… 中,您可以获得的所有解释
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
相关资源
最近更新 更多