Beste mensen,

Ik heb een website waar ik heel wat mails (berichten) tegelijk wil verwijderen.

Op het moment heb ik volgende code:


$(document).ready(function(){
	
$("#selectall").change(function(){
    var status = $(this).is(":checked") ? true : false;
    $(".idx").prop("checked",status);
});
$("#hapus_semua").live("click",function(e) {
e.preventDefault();
$(".ajax").attr("disabled", "disabled");

var sList = "";
$(".idx").each(function () {
    if (this.checked)
    sList +=  $(this).val() + ",";
});


var callback = function()
{
        $.post("../controller/ajax-admin.php", { daftar: sList , "delall-catch": "yes"},
            function(data) {
                processReport (data);
            }
        );
}
confirm("Weet u zeker dat u de geselecteerde mails wilt verwijderen?",callback )

});


Echter is het zo dat wanneer ik klik op de button dat er niets gebeurd aangezien er in de ajax.php bestand nog wat mist, wat moet ik hier plaatsen om dit stukje werkend te maken?
Waarom heb je die functie nodig?
Je kan toch prima in je overzicht zelf een loop maken, en de mails ophalen?
Het gaat tenslotte om een 'view'.
Om juist alle mails te verwijderen..

Ik heb trouwens onderstaand


$config['aColumnsin'] = array( 'distinct(email_sender) as xxx', 'domain', 'email_sender', 'email_receiver', " IF(is_register = 1,'ja','nee') as is_register",'subject', 'id as view',"DATE_FORMAT(times,'%d %b %Y %k:%i') as times" );


Veranderd naar:


$config['aColumnsin'] = array( 'distinct(id) as xxx', 'domain', 'email_sender', 'email_receiver', " IF(is_register = 1,'ja','nee') as is_register",'subject', 'id as view',"DATE_FORMAT(times,'%d %b %Y %k:%i') as times" );
	


en ik heb


var sList = "";
		$('.profile_id').each(function () {
			if (this.checked)
			sList += "'"+$(this).val().trim() + "',";


omgezet naar:


var sList = "";
		$('.profile_id').each(function () {
			if (this.checked)
			sList += "'"+$(this).val().trim() + "'";


Er is vooruitgang.. enkel nu pakt hij telkens maar 1 mail... ook al selecteer ik alles of doe ik meer dan 1
Je moet dan toch even kijken wat een print_r() op je $_POST doet, zoals ik gevraagd heb.
Kijk eens wat er gebeurt als je alles selecteert, en wat je array is.
Het werkt inmiddels..


sList += "'"+$(this).val().trim() + "'";


toch teruggezet naar:


sList += "'"+$(this).val().trim() + "',";


En dan vervolgens in de ajax deze regel bijgezet:


$list = substr($list,0,-1);


Nu werkt het perfect!
DELETE from mail_inbox WHERE id='".$db->escape_string($_POST['del'])."'

Heb niet alles gelezen maar als je meerdere e-mails tegelijkertijd wilt verwijderen zou ik eerder een constructie met WHERE id IN (x, y, z) verwachten.

Daarbij, deze id's kun je vervangen door willekeurige getallen in de POST en daarmee in de query zelf? Dit houdt dus (misschien?) in dat je willekeurige berichten kunt verwijderen? Moet hier niet nog een andere conditie aan toegevoegd worden die een ontvanger identificeert?
Die code die jij aangeeft dat is ook niet voor meerdere mails inderdaad, dat is enkel voor individueel dat ook bestaat en dat werkte wel, echter werkte het eerste niet om meerdere mails te verwijderen maar dat heb ik dus zelf inmiddels wel kunnen oplossen gisteren.

Reageren