Ik kom er niet uit met het terugontvangen van server-gegevens via ajax. Kan iemand mij met onderstaand specifieke voorbeeld helpen ?
Ik stuur een sql-statement naar de server. Ajax voert deze query uit en ik wil op de client aangeven hoeveel regels er geupdate zijn (of bv. dat de query mislukt is). Wat moet ik hiervoor doen ?


    $(document).ready(function() {
        $("#execbutton").click(function(event)
        {
			event.preventDefault();     // altijd submit formulier tegenhouden

			var sqlnaam = $('#sqlvar option:selected').text();
			var sqlstmt = $('#area').val();

			$.ajax({
				url: "ajaxsql.php",
				type: "post",
				data: {
					posttype: "update",
					postnaam: sqlnaam,
					poststmt: sqlstmt
				},
				success: function(data){
					$('#ajaxresult').html("SQL uitgevoerd");
				},
				error: function(){
					$('#ajaxresult').html("SQL mislukt !!");
				},
				complete: function(){
					$('body').css('cursor', 'default');
				}
			});
        }); // ajax execute


ajaxsql.php:


	include(INC_DIR."mysql_verbinding.php");

	$type = $_POST['posttype'];
	$sqlnaam = mysql_real_escape_string($_POST['postnaam']);
	$sqlstmt = mysql_real_escape_string($_POST['poststmt']);

	if ($type == 'update')
	{
		$query = "UPDATE sql_journaalregels SET sqlstmt = '$sqlstmt' WHERE sqlnaam = '$sqlnaam' " ;
		$result = $db->query($query);
		$rc = mysql_affected_rows();
	} 

Okay, wat Ajax is:
Javaschript is een script dat draait op de webbrowser. Ajax zorgt er voor dat javascript kan surfen naar de server (zonder dat de gebruiker daar veel van merkt).

Bij dat surf-request kan javascript ook POST en COOKIEs sturen; op de serrver kan je de zelfde SESSION-variabelen gebruiken als je wil.

Alles wat de server echo't, krijgt javascript terug in de success functie, als data.

Dus:
ajaxsql.php:

<?php
...
$rc = mysql_affected_rows();
echo $rc; // dit wordt dus data
}
?>



javascript

        success: function(data) {
          $('#ajaxresult').html("SQL uitgevoerd.  Aantal rijen aangepast: " + data);
        },
Volgens mij komen alle gegevens die je echoed in ajaxsql.php terug in de 'data' variabele in de js functie.

Als je je ajax-script het aantal affected rows laten outputten en je javascript een klein beetje aanpast moet het goed komen:

<?php
success: function(data){
$('#ajaxresult').html(data);
},
?>
Dank. Antwoord is weer eens simpeler dan ik dacht.

Reageren