Probleem zoals iedereen kan zien zit hem in het feit dat er quote's in de 2e parameter van de signatuur zitten: '%Y%m' en '201606'.
Ik dacht even met de oplossing gevonden te hebben met json_encode en/of htmlspecialchars, maar dit bood ook geen oplossing.
Op zich begrijp ik ook dat het op z'n minst lastig is of dat het misschien niet kan.
Maar anderzijds denk ik, ik ben vast niet de eerste die met dit problem zit en heb ik het idee dat het wel zou moeten kunnen werken.
Waar het mij nog steeds om gaat en dat wil graag weten of dit mogelijk is:
"kan ik met PHP JavaScript schrijven en daarbinnen expliciet aangegeven dat een deel daarvan string is met quotes?"
Ik ben vorige week terug gekomen van vakantie. Nu zojuist dit nog even uitgeprobeerd, ik neem aan dat je dit bedoeld. Dit is syntactisch al fout:
<?php
echo '<a class="'.$classTag.'" href="javascript: Test('Datum = \\\'201606\\\'');"><span>View Data</span></a>';
?>
Of bedoelde je dit niet?
Ik heb nog wel wat combi's geprobeerd. Een daarvan was voor iedere single quote van de parameter, een 3 voudige slash zetten. Dan klopt het 'syntactisch' (compiler geeft geen fout) maar als ik dan op de link klik krijg ik in de console de melding 'ongeldig teken'.
KORTOM ik trek op dit moment de conclussie dat het (simpel) NIET mogelijk is!!
En misschien, als ik er eens goed over na denk, komt dit ook nooit voor! Wat ik oorspronkelijk van plan was moet je gewoon anders oplossen.
Mocht iemand het toch weten dat dit moet kunnen, dan zou ik graag de oplossing willen zien.
Waarom zou je statische HTML/JavaScript echo'en, dat is helemaal niet nodig.
Zoals al eerder aangehaald, je moet het idee van lappen SQL aanleveren laten varen. Waar het om gaat is specifieke informatie, in dit geval een jaar+maand? Dat is de informatie die je enkel door hoeft te geven en dat stukje informatie stop je -na uitvoerige controle op het correct formaat van de invoer- ge-escaped en wel in een volledig SQL-statement.
Vergelijk dit met een functie(aanroep): door middel van parameters lever je de missende informatie. Je hoeft enkel de vakjes in te vullen, meer informatie is niet nodig.