hoe ajax mysql-variabele terug naar client ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pjotr Bee

Pjotr Bee

04/09/2013 10:55:00
Quote Anchor link
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 ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
    $(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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
    }
 
PHP hulp

PHP hulp

24/11/2024 16:43:40
 
Kris Peeters

Kris Peeters

04/09/2013 11:14:24
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
...
$rc = mysql_affected_rows();
echo $rc; // dit wordt dus data
}
?>



javascript
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
        success: function(data) {
          $('#ajaxresult').html("SQL uitgevoerd.  Aantal rijen aangepast: " + data);
        },
Gewijzigd op 04/09/2013 11:16:48 door Kris Peeters
 
Frits Katoen

Frits Katoen

04/09/2013 11:15:14
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
success: function(data){
             $('#ajaxresult').html(data);
         },

?>
Gewijzigd op 04/09/2013 11:16:28 door Frits Katoen
 
Pjotr Bee

Pjotr Bee

04/09/2013 14:39:57
Quote Anchor link
Dank. Antwoord is weer eens simpeler dan ik dacht.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.