On the PHP side of things, I have an integer and I have a string of HTML:
JavaScript
x
function get_the_goods() {
$versionid = '7';
$htmlstuff = '';
$htmlstuff .= '<div id="kittens">STUFF AND STUFF</div><img src="https://example.com">';
$htmlstuff .= '<p>KITTENS THE SEQUEL.</p>';
echo "{'versionid':'" . $versionid . "','htmlstuff':'" . $htmlstuff . "'}";
wp_die();
}
$versionid is just an integer and $htmlstuff is a reasonable string of HTML. I escaped the double quotes trying to resolve this.
When I parse this as such on the JQuery/JS side, I get an unexpected token error. Previously, I was only sending the string of HTML by itself without the JSON array and all was fine.
JavaScript
//THIS IS THE RELEVANT JQUERY/AJAX PART:
success : function(data){
if(data && data !="") {
var json = JSON.parse(data);
var htmlstuff = json.htmlstuff;
var previousversion = json.versionid;
console.log(versionid);
jQuery('#kittens).html(htmlstuff);
}
}
Advertisement
Answer
My solution to this problem was simple. Instead of attempting to echo the JSON myself, I put it into a PHP array and used JSON_ENCODE to prep it for jQuery and this ended up working fine.