简体   繁体   中英

Issue calling JS function from PHP echo with a specific variable

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>';      

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 . '"' .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM