Fetch data Wordpress database met AJAX

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yoeri Achterbergen

Yoeri Achterbergen

06/11/2018 00:37:17
Quote Anchor link
Hallo,

Ik heb een script gemaakt wat ik graag wil vertalen naar een Wordpress plugin.
Met dit script kun je data toevoegen, updaten en verwijderen, dit gebeurt met AJAX PHP en MySQL.

Ik loop tegen het probleem aan dat ik geen data krijg uit de database van Wordpress.
Als je de plugin activeert word er een tabel toegevoegd met de nodige kolommen.
Met PHPmyAdmin heb ik een record ingevoerd en deze wil ik graag uitlezen.

Op de pagina van de Plugin heb ik een AJAX call gemaakt
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
<script type="text/javascript">
$(document).ready(function(){
fetchUser();
function fetchUser(){
    var action = "select";
    $.ajax({
        url: "<?php echo PLUGIN_URL."/mijnplugin/required/load.php"; ?>",
        method: "POST",
        data:{action:action},
        success:function(data){
            $('#result').html(data);
        }
    
    });

}
});
</script>


De AJAX call roep deze PHP pagina op
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
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM wp_names");
if(!empty($results)){
    $output .="<table>";
    foreach($results as $row){
        $output .="
        <tr>
            <td>$row->firstname</td>
        </tr>
        "
;
    }

    $output .="</table>";
echo $output;    
}
  
?>


De console geeft aan dat er een error 500 is maar als ik de PHPcode direct in de adminpagina verwerk krijg ik wel het gewenste resultaat.

Zet ik in de PHP pagina alleen een echo
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "Geef terug";
?>


Krijg ik deze wel via de AJAX terug.

Waar kan hem dit in zitten ?
Gewijzigd op 06/11/2018 00:45:25 door Yoeri Achterbergen
 
PHP hulp

PHP hulp

29/09/2020 10:25:06
 
- Ariën -
Beheerder

- Ariën -

06/11/2018 00:55:09
Quote Anchor link
Je moet nog iets includeren.
Want een request naar een AJAX-script maakt het niet meteen dat het een functie is waar je met global een instance van $wpdb kan ophalen (sowieso is global ranzig).

En 500-errors kan je gewoon in je log terug bekijken. Het is verder geen cryptische of nietszeggende error ofzo.
Gewijzigd op 06/11/2018 00:56:48 door - Ariën -
 
Yoeri Achterbergen

Yoeri Achterbergen

06/11/2018 17:42:51
Quote Anchor link
Hi Ariën,


Wat ben ik dan vergeten te includeren?
 
- Ariën -
Beheerder

- Ariën -

06/11/2018 18:01:43
Quote Anchor link
Ik ken Wordpress niet zo, maar in ieder geval moet je de database-connectie zoeken.

Ik heb even rondgeneusd, een het lijkt erop dat je een plugin aan moet maken. https://codex.wordpress.org/AJAX_in_Plugins
Gewijzigd op 06/11/2018 18:05:55 door - Ariën -
 
Yoeri Achterbergen

Yoeri Achterbergen

09/11/2018 12:59:15
Quote Anchor link
Hi Ariën,

Het is gelukt en kan nu in een custom tabel data toevoegen, updaten en verwijderen met AJAX.
 



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.