Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript php循环中的JQuery Post并不完美_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript php循环中的JQuery Post并不完美

Javascript php循环中的JQuery Post并不完美,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有下面的list.php,它创建了一个包含项目的列表和一个按钮(Erledigt!),该按钮将Jquery帖子发送到wishdelete2.php。问题是jquerypost的工作并不完美:有一次我需要按3x或5x按钮,然后JQuery就被处理了。但是我希望我只需要1x,Jquery帖子就可以处理了。我必须换什么 list.php: <html lang="de"> <head> <meta name="viewport" content="width=devic

我有下面的list.php,它创建了一个包含项目的列表和一个按钮(Erledigt!),该按钮将Jquery帖子发送到wishdelete2.php。问题是jquerypost的工作并不完美:有一次我需要按3x或5x按钮,然后JQuery就被处理了。但是我希望我只需要1x,Jquery帖子就可以处理了。我必须换什么

list.php:

<html lang="de">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta charset="utf-8">
<title>Wünsche</title>
<!-- <script src="../jquery.min.js"></script> -->
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<style>
table{
        width:100%; 
        border-collapse:collapse; 
}
table th{
    padding:5px; 
    border:#5f5f5f 1px solid;

}
table td{
    padding:5px; 
    border:#5f5f5f 1px solid;
}
table tr{
    background: #bbbbbb;
}
table tr:nth-child(4n){
    background: #e3e3e3;
}
</style>

</head>
<div id="resulter"></div>
<body>
<h3>Wünsche</h3>
<table>
<tr><th>Zeit</th><th>IMDB-ID</th><th></th><th></th><th>Counter</th><th>Titel</th><th>Art</th></tr>
<?php
$pdo = new PDO('mysql:host=********;dbname=********;charset=utf8', '********', '********');
$sql = "SELECT * FROM ******** WHERE not marker = 'oU' ORDER BY cast(counter as int) DESC, timestamp ";
foreach($pdo->query($sql) as $row) {
$id = $row['id'];
$timestamp = $row['timestamp'];
$counter = $row['counter'];
$art = $row['art'];
$imdbid = $row['imdb_id'];

$title = $row['title'];
$language = $row['language'];
$aufloesung = $row['aufloesung'];
$marker = $row['marker'];
?>
<tr><td><?php echo $timestamp ?></td><td><?php echo $imdbid ?></td><td><?php echo $language ?></td>
<td><?php echo $aufloesung ?></td><td class="counter"><?php echo $counter ?></td><td class="title" style=""><?php echo $title ?></td><td><?php echo $art ?></td><td><?php echo $marker ?></td>
<td style="padding:0;"><button class="<?php echo $id ?>">Erledigt!</button>
<select class="marker<?php echo $id ?>"><option></option><option>oD</option><option>oDwE</option><option>wE</option><option>oE</option><option>oU</option></select></td></tr>
<script>
 $(document).ready(function(){
    $(".<?php echo $id ?>").click(function(){
        var id = "<?php echo $id ?>",
        marker =  $(".marker<?php echo $id ?>").val();
        $.post("wishdelete2.php", 
            { id:  id,
            marker: marker
            });
        location.reload();
    });
});
</script>
<?php } ?>
</table>

</body>
</html>

温施
桌子{
宽度:100%;
边界塌陷:塌陷;
}
表th{
填充物:5px;
边框:5F5F 1px实心;
}
表td{
填充物:5px;
边框:5F5F 1px实心;
}
表tr{
背景:#bbbbbb;
}
表tr:N子级(4n){
背景:#e3;
}
温施
ZeitIMDB-IdCounterTitelat

jQuery.post
是一个异步函数,即一旦该函数返回,请求将不会被发送。问题是您在调用
post
后立即调用
location.reload()
,因此在大多数情况下,在浏览器重新加载页面之前,您的请求不会被发送。如果要在发送post请求后重新加载页面,请将处理程序传递到
post
,例如传递到
success
事件

如中所述,您只需在数据之后传递函数,如下所示:

$.post(
“wishdelete2.php”,
{id:id,marker:marker},
函数(){location.reload();}
);
请注意,此处理程序是一个
success
处理程序,因此只有在post请求成功时才会被调用。您可能希望查看链接的文档,并在必要时提供错误处理程序来通知用户故障


此外,您应该考虑添加一些指示,表明页面正在等待post请求。您可以通过谷歌搜索加载微调器来查找常用的动画图形,这些图形指示有一个脚本正在加载背景中的内容。当然,显示这样的微调器只是表明这一点的一种方式。要有创意。

jQuery.post
是一个异步函数,即一旦该函数返回,请求将不会被发送。问题是您在调用
post
后立即调用
location.reload()
,因此在大多数情况下,在浏览器重新加载页面之前,您的请求不会被发送。如果要在发送post请求后重新加载页面,请将处理程序传递到
post
,例如传递到
success
事件

如中所述,您只需在数据之后传递函数,如下所示:

$.post(
“wishdelete2.php”,
{id:id,marker:marker},
函数(){location.reload();}
);
请注意,此处理程序是一个
success
处理程序,因此只有在post请求成功时才会被调用。您可能希望查看链接的文档,并在必要时提供错误处理程序来通知用户故障


此外,您应该考虑添加一些指示,表明页面正在等待post请求。您可以通过谷歌搜索加载微调器来查找常用的动画图形,这些图形指示有一个脚本正在加载背景中的内容。当然,显示这样的微调器只是表明这一点的一种方式。要有创意。

post请求需要一点时间,你确定你不是在它已经在处理请求时按下按钮吗?检查浏览器的调试工具。当您第一次按下按钮时,您的单击处理程序是否执行?是否发出了AJAX请求?请具体说明这是如何失败的。post请求将花费一点时间,您确定在它已在处理请求时您不仅仅按下了按钮吗?请检查浏览器的调试工具。当您第一次按下按钮时,您的单击处理程序是否执行?是否发出了AJAX请求?具体说明这是如何失败的。
<?php
$con=mysqli_connect("********","********","********","********");
$id = mysqli_real_escape_string($con, $_POST['id']);
$marker = mysqli_real_escape_string($con, $_POST['marker']);
mysqli_close($con);

$pdo = new PDO('mysql:host=********;dbname=********;charset=utf8', '********', '********');
if(empty($marker)){
$stmt = $pdo->query("DELETE FROM ******** WHERE id='$id' ");
}else{
$stmt = $pdo->query("UPDATE ******** SET marker='$marker', IP='' WHERE id='$id' ");
}
?>