Reputation: 301
I have a JS function that will add keys with values to the current URL. There are two almost identical links below, only difference is the variable being passed to the JS function. One link passes $month, the other passes $event_category. For some reason, when passing $event_category, the JS function doesn't even get called. Anyone know what I'm doing wrong?
You'll have to scroll to the right to see where the difference is.
$month = 1;
$event_category = (string) ($eventCategories[$k]["event_category"]);
echo gettype($event_category); // prints "string"
// doesn't work?
echo '<div class="month selected"><a href="javascript:void(0);" onclick="javascript:insertParam('. "'event_category'" .', '. $event_category .');" class="button" role="button">
<image width="100" height="60" src="images/'. $images_list[$eventCategories[$k]["event_category"]].'"></a></div>';
// works
echo '<div class="month selected"><a href="javascript:void(0);" onclick="javascript:insertParam('. "'event_category'" .', '. $month .');" class="button" role="button">
<image width="100" height="60" src="images/'. $images_list[$eventCategories[$k]["event_category"]].'"></a></div>';
Upvotes: 0
Views: 49
Reputation: 81
You should put quotes around the $event_category, otherwise it will be interpreted by javascript as a variable. So, convert
. $event_category .
to
. '"' . $event_category . '"' .
Upvotes: 2