Ik heb een link die er zo uit ziet:

<a href="#" data-href="<?php echo $row["id"]; ?>" class="delbericht"><img src="images/icons/delete.png" width="20px" class="delete" /></a>


Ik heb via het bronbestand van de browser gekeken en ik zie dat de data-href value gevuld is met een id.

Vervolgens wil ik die variabele gebruiken in een ajax call alleen geeft hij steeds aan dat deze leeg is.
Wie weet waarom hij denkt dat deze variabele leeg is?


$(".delbericht").click(function(e){
			e.preventDefault();
			href=$(this).data("href");
			swal({
				title: "Weet je het zeker?",
				text: "Dit bericht wordt permanent verwijderd",
				type: "warning",
				showCancelButton: true,
				closeOnConfirm: false,
				showLoaderOnConfirm: true,
			}, 
			function() {
				$.ajax({
					type: "POST",
					url: "scripts/jquery-posts.php",
					data: 'delbericht=' + href,
					success: function(msg){		
						setTimeout(function(){
							swal("Bericht succesvol verwijderd");
						}, 2000); 
					},
					error: function(msg){		
						setTimeout(function(){
							swal("Error: kan bericht niet verwijderen");
						}, 2000); 
					}
				}); // Ajax Call
			});
		});
Okee mijn excuus maar ik denk dat het probleem niet in de variabele zit. xD

Via de Ajax call roep ik een .php bestand en die geeft een return false; maar dan wordt de error functie van de Ajax call helemaal niet aangeroepen.
Daardoor leek het alsof de variabele steeds leeg was maar

error: function(msg2){		
						setTimeout(function(){
							swal("Error: kan bericht niet verwijderen");
						}, 2000); 
					}

wordt gewoon niet aangeroepen.

Ik heb voor nu even in jquery-posts.php alleen dit opgenomen

<?php
if (isset($_POST['delbericht'])) {
	return false;
}
?>


Maar dan staat er gewoon bericht succesvol verwijderd ipv error: kan bericht niet verwijderen. Pas wanneer er een incompleet commando staat wordt de error aangegeven.

Is de error in mijn ajax call dan niet op de goede manier gebruikt?
<?php
if (isset($_POST['delbericht'])) {
echo 1;
}
?>


                    success: function(msg){
                      if(msg == 1) {
                         $('#error').html('Er is iets fout gegaan!');
                      } else {
                          setTimeout(function(){
                              swal("Bericht succesvol verwijderd");
                          }, 2000);
                      }
                    },


Error geeft alleen paginafouten aan. Zie: http://stackoverflow.com/a/9446122
Bedankt, ik gebruikte de error dus verkeerd in de ajax call.

Ik heb het nu vervangen voor deze if {} else {}. Alleen in je voorbeeld van het php bestand is alleen de echo toch voldoende? Dat maakt de return false; toch overbodig?
@Donny

Ja. In dit geval wel.

Reageren