다음 jQuery가 있습니다.
$("#delete_products").click(function() {
$(":checkbox:checked").each(function() {
var pid = $(this).val();
$.get('delete_product.php',{pid: pid});
});
location.reload();
});
페이지가 AJAX 요청이 완료 될 때까지 기다리지 않고 ( MULTIPLE AJAX REQUESTS ) 페이지를 즉시 새로 고침하고 AJAX 요청이 실행되지 않고 실패하도록 만들기 때문에 문제가 있습니다.
로드가 완료되었을 때만 페이지가 새로 고쳐 지도록하려면 어떻게해야합니까?
이 코드를 받았습니다.
$("#delete_products").click(function () {
var promises = [];
$(":checkbox:checked").each(function () {
var pid = $(this).val();
promises.push($.get('delete_product.php', {
pid: pid
}));
});
$.when.apply($, promises).done(function () {
location.reload();
});
return false;
});
그러나이 솔루션은 작동하지 않습니다.
어떤 제안?
코드가 작동하는 것처럼 보이지만 ID 배열을 전달하여 한 번의 호출로 모든 제품을 삭제하는 것이 좋습니다.
브라우저 작업이 줄어들고 서버 작업이 줄어들고 결과가 빨라집니다.
업데이트 된 답변
$("#delete_products").click(function () {
var ids = [];
$(":checkbox:checked").each(function () {
ids.push($(this).val());
});
$.post('delete.php', { 'ids': ids } }).done(function() {
alert('hells yeah!');
});
return false;
});
서버 측은 다음과 같습니다.
$commaSeperatedIds = explode(',', $_POST['ids']);
mysql_query('DELETE FROM products WHERE id IN('.mysql_real_escape_string($commaSeperatedIds).')');
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다