sql >> Database >  >> RDS >> Mysql

update gegevens in de div

U kunt hiervoor een combinatie van jQuery en AJAX gebruiken. Veel eenvoudiger dan het klinkt. Om te zien of dit het juiste antwoord voor u is, bekijk dit voorbeeld .

In het onderstaande voorbeeld zijn er twee .PHP-bestanden:test86a.php en test86b.php.

Het eerste bestand, 86A, heeft een eenvoudige selectie (vervolgkeuzelijst) en wat jQuery-code die ervoor zorgt dat die selectiebox wordt gewijzigd. Om de jQuery-code te activeren, kunt u de jQuery .blur() . gebruiken functie om te kijken of de gebruiker het datumveld verlaat, of u kunt de jQueryUI API gebruiken:

$('#date_start').datepicker({
    onSelect: function(dateText, instance) {

        // Split date_finish into 3 input fields                        
        var arrSplit = dateText.split("-");
        $('#date_start-y').val(arrSplit[0]);
        $('#date_start-m').val(arrSplit[1]);
        $('#date_start-d').val(arrSplit[2]);

        // Populate date_start field (adds 14 days and plunks result in date_finish field)
        var nextDayDate = $('#date_start').datepicker('getDate', '+14d');
        nextDayDate.setDate(nextDayDate.getDate() + 14);
        $('#date_finish').datepicker('setDate', nextDayDate);
        splitDateStart($("#date_finish").val());
    },
    onClose: function() {
        //$("#date_finish").datepicker("show");
    }
});

In ieder geval, wanneer de jQuery wordt geactiveerd, wordt een AJAX-verzoek verzonden naar het tweede bestand, 86B. Dit bestand zoekt automatisch dingen op uit de database, haalt de antwoorden op, maakt opgemaakte HTML-inhoud en echo is het terug naar het eerste bestand. Dit gebeurt allemaal via Javascript, gestart in de browser - precies zoals u dat wilt.

Deze twee bestanden zijn een onafhankelijk, volledig werkend voorbeeld. Vervang gewoon de MYSQL-aanmeldingen en inhoud door uw eigen veldnamen, enz. en zie hoe de magie gebeurt.

TEST86A.PHP

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
            $(function() {
//alert('Document is ready');

                $('#stSelect').change(function() {
                    var sel_stud = $(this).val();
//alert('You picked: ' + sel_stud);

                    $.ajax({
                        type: "POST",
                        url: "test86b.php", // "another_php_file.php",
                        data: 'theOption=' + sel_stud,
                        success: function(whatigot) {
//alert('Server-side response: ' + whatigot);
                            $('#LaDIV').html(whatigot);
                            $('#theButton').click(function() {
                                alert('You clicked the button');
                            });
                        } //END success fn
                    }); //END $.ajax
                }); //END dropdown change event
            }); //END document.ready
        </script>
    </head>
<body>

    <select name="students" id="stSelect">
        <option value="">Please Select</option>
        <option value="John">John Doe</option>
        <option value="Mike">Mike Williams</option>
        <option value="Chris">Chris Edwards</option>
    </select>
    <div id="LaDIV"></div>

</body>
</html>

TEST86B.PHP

<?php

//Login to database (usually this is stored in a separate php file and included in each file where required)
    $server = 'localhost'; //localhost is the usual name of the server if apache/Linux.
    $login = 'abcd1234';
    $pword = 'verySecret';
    $dbname = 'abcd1234_mydb';
    mysql_connect($server,$login,$pword) or die($connect_error); //or die(mysql_error());
    mysql_select_db($dbname) or die($connect_error);

//Get value posted in by ajax
    $selStudent = $_POST['theOption'];
    //die('You sent: ' . $selStudent);

//Run DB query
    $query = "SELECT `user_id`, `first_name`, `last_name` FROM `users` WHERE `first_name` = '$selStudent' AND `user_type` = 'staff'";
    $result = mysql_query($query) or die('Fn test86.php ERROR: ' . mysql_error());
    $num_rows_returned = mysql_num_rows($result);
    //die('Query returned ' . $num_rows_returned . ' rows.');

//Prepare response html markup
    $r = '  
            <h1>Found in Database:</h1>
            <ul style="list-style-type:disc;">
    ';

//Parse mysql results and create response string. Response can be an html table, a full page, or just a few characters
    if ($num_rows_returned > 0) {
        while ($row = mysql_fetch_assoc($result)) {
            $r = $r . '<li> ' . $row['first_name'] . ' ' . $row['last_name'] . ' -- UserID [' .$row['user_id']. ']</li>';
        }
    } else {
        $r = '<p>No student by that name on staff</p>';
    }

//Add this extra button for fun
    $r = $r . '</ul><button id="theButton">Click Me</button>';

//The response echoed below will be inserted into the 
    echo $r;

Hier is een eenvoudiger AJAX-voorbeeld en toch een ander voorbeeld voor u om uit te checken.

Merk in alle voorbeelden op hoe de gebruiker de HTML-inhoud aanlevert (door iets te typen of door een nieuwe datumwaarde te selecteren of door een vervolgkeuzelijst te kiezen). De door de gebruiker aangeleverde gegevens zijn:

1) GEMAAKT via jQuery:var sel_stud = $('#stSelect').val();

2) vervolgens VERZONDEN via AJAX naar het tweede script. (De $.ajax({}) dingen)

Het tweede script gebruikt de ontvangen waarden om het antwoord op te zoeken, en ECHOES dat vervolgens terug naar het eerste script:echo $r;

Het eerste script ONTVANGT het antwoord in de AJAX-succesfunctie en vervolgens (nog steeds binnen de succesfunctie) INJECTEERT het antwoord op de pagina:$('#LaDIV').html(whatigot);

Experimenteer met deze eenvoudige voorbeelden -- het eerste (eenvoudiger) gekoppelde voorbeeld vereist geen database-lookup, dus het zou zonder wijzigingen moeten worden uitgevoerd.



  1. Oracle PL/SQL - Hoe maak ik een eenvoudige arrayvariabele aan?

  2. Pleidooi voor IN PLAATS VAN Triggers - Deel 1

  3. Pre-UPDATE kolomwaarden retourneren met alleen SQL

  4. Mysql-prestaties op zeer grote tafels