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


<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

<?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

<?php
echo "Geef terug";
?>


Krijg ik deze wel via de AJAX terug.

Waar kan hem dit in zitten ?
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.
Hi Ariën,


Wat ben ik dan vergeten te includeren?

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
Hi Ariën,

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

Reageren