Php 使用带有while语句和DB的ajax

Php 使用带有while语句和DB的ajax,php,ajax,Php,Ajax,我有一个关于使用ajax的问题。我想删除我屏幕上的一些内容(说清楚,一些文章),我正在用以下代码在屏幕上生成内容(这些文章): while($test = $allArticles->fetch_assoc()) { echo "<div class='metfoto'>"; echo "<h1 name='tt' class='titelopmaak'>".$test['titel'] . "<br /></

我有一个关于使用ajax的问题。我想删除我屏幕上的一些内容(说清楚,一些文章),我正在用以下代码在屏幕上生成内容(这些文章):

while($test = $allArticles->fetch_assoc())
{   
        echo "<div class='metfoto'>";
        echo "<h1 name='tt' class='titelopmaak'>".$test['titel'] . "<br /></h1>";
    echo "<p class='artikelopmaak'>" . $test['article'] . "</p>";
        echo "<form method='post' action=''>";
    echo "<input type='submit' class='delete' name='verwijder' value='verwijder'>";
        echo "</form>";
    //echo "<h1>".$test['id']."</h1>";
    echo "</div>";
}
while($test=$allArticles->fetch_assoc())
{   
回声“;
echo“$test['titel']”,
; echo“

”$test['article']。“

”; 回声“; 回声“; 回声“; //echo“$test['id']”; 回声“; }
这一切在没有ajax的情况下运行得非常好。但是我想在不刷新页面的情况下实现这一点(用按钮删除)。 例如,当我检查$test['id']的内容时,我收到一个数字我对下面代码的问题是,当我想将标题放入ajax的variabel(var titel)中时,它会从我的页面加载所有的titel。

        <script type="text/javascript">
            $(document).ready(function(){
                $(".delete").click(function(){
                    var titel = $(".titelopmaak").text();
                    var artikel = $(".artikelopmaak").text();

            $.ajax({
            type: "POST",
            url: "assets/ajax/deleteArticle.php",
            data: { titelA:titel },

        }).done(function( msg ) {

            if(msg.status != "error")

                {
                    if(msg.status == "success")
                    {
                        $(".titelopmaak").fadeOut();

                    }
                    else
                    {

                    }
                }

        });
        return false;
    })

});             
        </script>

$(文档).ready(函数(){
$(“.delete”)。单击(函数(){
变量titel=$(“.titelopmaak”).text();
var artikel=$(“.artikelopmaak”).text();
$.ajax({
类型:“POST”,
url:“assets/ajax/deleteArticle.php”,
数据:{titelA:titel},
}).done(函数(msg){
如果(消息状态!=“错误”)
{
如果(msg.status==“成功”)
{
$(“.titelopmaak”).fadeOut();
}
其他的
{
}
}
});
返回false;
})
});             
编辑

我希望我现在能更好地解释我的问题

你的问题就在这里

 var titel = $(".titelopmaak").text();
你得到了所有的价值​​类为
.titelopmaak
的元素,但您只需要一个

这是正确的一个,我们去树上,然后找到项目

var titel = $(this).closest('.metfoto').find('.titelopmaak').text();
但是,按标题控制元素是非常糟糕的做法,使用id而不是

<script>
$(document).ready( function(){
    $('.delete').submit( function() {
            $.ajax({
                url:    $(this).attr('action'),
                data:   $(this).serialize(),
                type:   $(this).attr('method'),
                success: function(data, status, jqXHR) {
                        $(".titelopmaak").fadeOut();
                },
                error: function(jqXHR, textStatus, errorThrown) {
                }
            );
    });
});
</script>
<? while($test = $allArticles->fetch_assoc()) { ?>
<form method="POST" action="" class="delete">
    <input type="hidden" value="<?=$test['id']?>" name="delete">
    <input type="submit" value='verwijder'>
</form>
<? } ?>

$(文档).ready(函数(){
$('.delete').submit(函数(){
$.ajax({
url:$(this.attr('action'),
数据:$(this).serialize(),
类型:$(this.attr('method'),
成功:功能(数据、状态、jqXHR){
$(“.titelopmaak”).fadeOut();
},
错误:函数(jqXHR、textStatus、errorshown){
}
);
});
});

您可以这样尝试

您必须为每个html元素指定单独的id

while($test = $allArticles->fetch_assoc())
{   
     $cid = $test['id'];
        echo "<div id='div$cid' class='metfoto'>";
        echo "<h1 name='tt' id='h1$cid' class='titelopmaak'>".$test['titel'] . "<br /></h1>";
    echo "<p id='para$cid' class='artikelopmaak'>" . $test['article'] . "</p>";
    echo "<input type='submit' class='delete' name='verwijder' id='verwijder$cid' onclick='deleteValue($cid);' value='verwijder'>";
    echo "</div>";
}

总结一下您的问题:“我有一个关于使用ajax的问题,请阅读我所有的代码,然后告诉我我做错了什么。”-请改进你提问的方式,你具体想知道什么?@Hakre,我真的很抱歉,我理解你在不知道这个故事的情况下很难理解我的意思。请看我的编辑。知道这个故事几乎是无关紧要的@NielsJansen。你需要努力将你的问题简化为一个简洁的问题sue,不要把它变成一堵代码墙,你希望其他人乐于阅读,试图从中找到一个问题。最多你有几个相关的问题,应该单独提问。如果我用编辑过的段落来评论这篇文章,也许我会一直读到文章的结尾。一个简短的问题,一首诗,一篇短文,一篇短文,一篇短文,一篇短文,好吗f codeok抱歉,各位,下次我会考虑你们的所有反馈……我保证……但对我来说,发布正确的代码和正确的问题很难得到最好的帮助……目前我不知道如何更改此帖子以更好地为大家服务。我很抱歉……cid未定义[abord]var titel=$(“#h1”+cid).text();很抱歉,我错过了onclick…onclick='deleteValue($cid);'结尾的一个引号。是否执行$test['id']存在与否?当我提醒var titel时,变量是空的。因此,在jquery 1.7.2中没有任何内容发布到您的代码中,它是有效的,请尝试使用调试器、firebug或其他工具打开它。我试图重新捕获所有内容并在没有ajax的情况下重建它,因为所有内容都被弄乱了。因此,对于每个人来说,我现在的问题是,当我点击删除按钮,什么都没有发生,我的意思是,例如,我说,从tbl中删除…其中id=5,当我单击某个地方的删除时,什么都没有发生,但在de DB中id为5的内容消失了,当我进行页面刷新时,屏幕上的内容也消失了。我想它在运行时(我是指使用pagerefresh automatic)也会工作,而不使用ajax。。。
<script type="text/javascript">
function deleteValue(cid)
{
         var titel = $("#h1"+cid).text();
         var artikel = $("#para"+cid).text();

            $.ajax({
            type: "POST",
            url: "assets/ajax/deleteArticle.php",
            data: { titelA:titel },

        }).done(function( msg ) {

            if(msg.status != "error")

                {
                    if(msg.status == "success")
                    {
                        $("#h1"+cid).fadeOut();

                    }
                    else
                    {

                    }
                }

        });
        return false;
    })

}
</script>
include "connection.php";
$title = $_POST['titelA'];
$ok = mysql_query("delete from yourtable where title='$title');
echo "your msg here";