I’ve got an AJAX script in my index.php of my CI application. I am just trying to return a simple string at this point for my testing. I’m using the following code for this:
<script>
$(document).ready(function() {
$.ajax({
type: 'POST',
url: 'index.php/loader/opc_client',
dataType: 'json',
cache: false,
success: function(data) {
console.log(data);
$('#opc-results').html(data.test);
}
});
});
</script>
The url in this call is a standalone file with it’s own controller. When I access this file directly in the browser it’s loaded normally and returns expected results. Following is my PHP code:
<?php echo json_encode("test"); ?>
I can see the post results in Firebug after the function is fired but the Firebug window just displays “an empty string” under the POST in console view.
Any clues? I’m not understand this…
UPDATE: If I console.log('success') in the success parameter of the AJAX call, it logs it properly so for some reason data is empty
you shouldn’t just json_encode a string although technically php can deal with a string as an array but I guess in this case things get weird. Just wrap it in an array, and when youre done testing you’ll probably be better off using key value pairs as it makes thing on the client side easier to deal with, ie obj.property.
try
echo json_encode(arrray('test'));