hoe ajax mysql-variabele terug naar client ?
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 ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$(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
$("#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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
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();
}
$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();
}
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:
javascript
Code (php)
1
2
3
2
3
success: function(data) {
$('#ajaxresult').html("SQL uitgevoerd. Aantal rijen aangepast: " + data);
},
$('#ajaxresult').html("SQL uitgevoerd. Aantal rijen aangepast: " + data);
},
Gewijzigd op 04/09/2013 11:16:48 door Kris Peeters
Als je je ajax-script het aantal affected rows laten outputten en je javascript een klein beetje aanpast moet het goed komen:
Gewijzigd op 04/09/2013 11:16:28 door Frits Katoen
Dank. Antwoord is weer eens simpeler dan ik dacht.