Php 使用带有while语句和DB的ajax
我有一个关于使用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 /></
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";