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?
Met een foreach.
Hoe ziet je formulier eruit? Heb je al ervoor gezorgd dat alles met blokhaken ( [] ) al als een array wordt gezien?

<div class="row-fluid">

<form method="get" id="target" class="form-inline">

<div class="widget-box">
							<div class="widget-title">
									<span class="icon">
									<input type="checkbox" id="selectall"> Selecteer Alle
								</span>
								<h5><?php echo $trns['h5']; ?></h5>
						

							</div>
							<div class="widget-content nopadding">
								<table class="table table-bordered table-striped table-hover data-table">
									<thead>
									<tr>
									<th></th>
									<th><?php echo $trns['website']; ?></th>
									<th><?php echo $trns['from']; ?></th>
									<th><?php echo $trns['to']; ?></th>
									<th><a href="#" class="tip-bottom" data-original-title="Is the sender register? 1= yes, 0 = no "><?php echo $trns['registered']; ?></a></th>
									<th><?php echo $trns['subject']; ?></th>
									<th><?php echo $trns['action']; ?></th>
									<th><?php echo $trns['time']; ?></th>
									</tr>
									</thead>
									<tbody>

									</tbody>
									</table>  
							</div>
						</div>
						<select id="task" name="task" class="span3">
				<option value="delete_email"><?php echo $trns['delete_selected']; ?></option>
				</select>
				
<button type="submit" class="btn"><i class="icon-envelope"></i> Go</button>
		</form>	
				</div>


Dit is de pagina..
Is het niet praktisch als je in je overzicht een loop hebt met al berichten, voorzien van een checkbox? Want in het overzicht die je laat zien, zie ik geen enkele loop. Of is deze ennkel bedoeld voor het individueel verwijderen van een bericht?
Deze is normaal gesproken wel gereed voor het individueel verwijderen van berichten..

Daar zijn deze codes voor:


$('.del').live("click",function(e) {

e.preventDefault();
	var tr = $(this).closest('tr');
	var pg = $(this).attr("data"); 
	var callback = function()
	{
        $.post('../controller/ajax.php', { del: pg , 'delete-mail': 'yes'},
            function(data) {
				if (data=='success')
				 tr.remove().fadeIn("slow");
            }
        ); 
}
confirm("<?php echo $trns['confirm_action']; ?>",callback )		
	});


en dan in de ajax:


if (isset($_POST['delete-mail'])){

	if ($_SESSION['role'] =='admin' or $_SESSION['role'] == 'master'){

	$sql ="DELETE from mail_inbox WHERE id='".$db->escape_string($_POST['del'])."'";	
	if ($db->query($sql)){
		echo 'success';
	}else{
		echo 'failed';
	}
	
	}else{				
		echo 'failed';
		exit();
	}
	

}


Dat is dus voor het per stuk zonder checkboxes en ik zou het enorm graag met willen en zoals ik net al aangaf het lukt bijna tot zover enkel pakt hij de mail adressen bij de list in plaats van id's..

En normaal zal ik echt niet snel om hulp vragen en heb tig dingen geprobeerd alleen kom er niet meer helemaal uit
Als je meerdere mails tegelijkertijd wilt verwijderen, dan moet je toch een overzicht hebben van alle emails, met elk een eigen checkbox?

Nu laat je hier een pagina zien met de inhoud van een individuele e-mail.
Hm excuses, nee die pagina is niet individueel maar die is aangeroepen door deze code:


if (isset($_GET['manage-mail'])){


		//Ophalen sites die je mag zien
		$toegestanesites='';
		$sql= "SELECT web_id FROM `moderator_sites` WHERE moderator_id='".$_SESSION['user_id']."'";
		$result = $db->query($sql);
		while($row =  $result->fetch_object()){
			$toegestanesites.=$row->web_id.',';
		}
		$toegestanesites.='0';
	//echo $toegestanesites;


	$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" );
	$config['aColumnsout'] =   array('xxx', 'domain', 'email_sender', 'email_receiver', 'is_register','subject','view','times' );
	$config['sIndexColumn'] = "id";
	$config['sTable'] = "mail_inbox a LEFT JOIN slave_sites e ON a.web_id = e.web_id WHERE e.web_id IN (".$toegestanesites.")";
	$config['searchable'] = array(0,2);
	$config['aConfig']['xxx']= '<input type="checkbox" name="ck[]" class="profile_id" value="[VAL]">';
	$config['aConfig']['view']= '<a href="../admin/email.php?id=[VAL]" title="view email" class="btn btn-mini"><i class="icon-envelope"></i></a>
	<a href="#" class="btn btn-mini del" data="[VAL]"><i class="icon-remove"></i></a>';
	$config['aConfig']['del']= '';
	create_table($config);
}
ck[] is dus een array in je (vermoedelijke) POST-request.
Dus lees $_POST['ck'] eerst eens uit in [php]print_r[/php] in je AJAX-response.
Ik denk zelf eigenlijk dat het in de value="[VAL]" zit.. Verander ik dat namelijk naar test dan geeft ie aan dat ie test niet kan verwijderen.. maak ik er val weer van.. dan pakt hij mail adressen maar dat moet juist ID worden
Je zou [VAL] kunnen vervangen met str_replace in het juiste ID-nummer, maar ik heb eerder het idee dat je beter de create_table() functie moet aanpassen zodat de ID's van de mails ook meegestuurd worden.

Ook vraag ik mij af of je het wel zo complex wilt hebben om er een aparte functie voor nodig te hebben. Infeite kan het zo veel simpeler zonder die functie.
Dacht dat dit al simpel moest zijn haha maar valt tegen dus, hoe zou het dan alsnog simpeler kunnen inderdaad?

En wat zou ik daar moeten aanpassen trouwens voor de id's? Bij Create_table?

Reageren