How do I put a PHP variable into a javascript function?

Here is a drastically stripped down code stub:
<!--  ************************************** -->
<!doctype html>
<html lang="us">
<?
$thecounty = $_REQUEST['county'];
require ("getcities.php");
?>
<head>
	<link href="css/smoothness/jquery-ui-1.10.4.custom.css" rel="stylesheet">
	<script src="js/jquery-1.10.2.js"></script>
	<script src="js/jquery-ui-1.10.4.custom.js"></script>
</head>

<body>
<?
   $thecities= cities("$thecounty"); 
   echo $thecities;   // just to show that the string of cities is really returned by the cities function
?>

<br>
<form>
<input id="autocities" size=20 name="icity" />
<input type="submit" value="submit" id="submitForm" >
</form>

</body>
<script>
$(function() {
		
var citiesincounty = [
"thecities", "php", "variable", "needs", "to", "go", "here"
];

$( "#autocities" ).autocomplete({
                    source: citiesincounty
}); 
});
</script>
</html>
<!--  ************************************** -->

Open in new window

What I need to do is take the variable $thecities returned by the php function "cities" and place it into the javascript variable "citiesincounty".  I have confirmed that $thecities is correctly formed for the Javascript array (if I paste it in in place of the fake array, it works.

Please provide your answer by editing my code.  Thanks!
DMTrumpAsked:
Who is Participating?
 
leakim971Connect With a Mentor PluritechnicianCommented:
// just to show that the string of cities is really returned by the cities function

Could you show we what you see?
What about :

var citiesincounty = "<?php echo $thecities; ?>";

or :

var citiesincounty = <?php echo $thecities; ?>;

or :

var citiesincounty = [<?php echo $thecities; ?>];

depending what you see...
0
 
GaryCommented:
If I am following you correctly

var citiesincounty = <?=json_encode($thecities)?>;

Open in new window

0
 
GaryCommented:
Amendment to that after rereading the code.

...
$thecities= cities("$thecounty"); 
// Assuming a comma delimited list
$thecities=explode(",",$thecities);
...

...
<script>
$(function() {
var citiesincounty = <?=json_encode($thecities)?>; 
...

Open in new window


Can you confirm what $thecities is - is it an array or string...?
0
 
Chris StanyonConnect With a Mentor Commented:
leakim971's last answer is the way to go:

var citiesincounty = [ <?php echo $thecities ?> ];

Open in new window

FYI - you might want to consider using full PHP tags instead of the short tags:

<?php instead of <?
<?php echo instead of <?=

Long tags will always work - short tags will sometimes work :)
0
 
DMTrumpAuthor Commented:
thanks all for helping out - I think I've got to be more careful about checking for typos in my code before I decide that something won't work the way I expect.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.