How can I access a JSON array from a PHP variable in an external JavaScript file without creating a global variable?
I have a PHP variable $customers that contains a json_encoded array:
$customers = [{"id":"12","name":"Abe Adams"},{"id":"17","name":"Bill Brown"}]
I want to use the contents of the array in a jQuery UI Autocomplete text input.
Rather than make an Ajax request for the autocomplete options, I'd prefer to use the values in the $customers array, which is passed in and ready to go when the user arrives at the page.
I know I can pass the contents of $customers to a JavaScript variable prior to loading the external JavaScript file:
<script>var customers = <?php echo $customers; ?></script>
<script src="external.js"></script>
But this requires creating a global JavaScript variable.
Is there a better way to access the $customers array from my external JS file?
This question has been asked several times previously:
Question: Access PHP var from external javascript file Accepted Answer: Create global var
Question: Pass vars from php to js without ajax Top Answer: Use Ajax
Question: php file send variable to .js external file Top Answer: Use Ajax
Question: Reading a PHP file variables from external JS Top Answer: Use eval
Question: Return JSON data from PHP, and use it using Javascript Accepted Answer: Create global var