Si vous jetez un coup d'oeil au code HTML généré, ça va ressembler à quelque chose comme ceci:
<input type='button' value='send mails' onclick="sendmails(Type your Question here testin to post from chrome)">
Il y a quelques citations manquantes arround la chaîne vous passez en paramètre à la fonction JS sendmails
Donc, je dirais ajouter quelques citations autour; un peu comme ceci:
echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";
EDIT: a ajouté plus de choses ...
Mais, si $sendQuestion
contient des guillemets, il va vous obtenez une autre erreur ... Il pourrait donc être utile à
- mauvaise idée: soit remplacer les
'
avec \'
avec quelque chose comme str_replace
- ou « transformer » la chaîne en valid-JS l'un, avec, par exemple,
json_encode
La deuxième solution vous obtiendrez un code PHP comme celui-ci (notez que json_encode
ajoute des guillemets doubles ARROUND la chaîne ... il devient plus difficile à incorporer directement dans l'appel de fonction ... donc nous allons utiliser une variable):
$sendQuestion = "Type your Question' here testin to post from chrome";
$json = json_encode($sendQuestion);
echo '<script type="text/javascript">' . "\n";
echo 'var myString = ' . $json . ';' . "\n";
echo '</script>' . "\n";
echo "<input type='button' value='send mails' onclick=\"sendmails(myString)\">";
Et le code HTML généré sera:
<script type="text/javascript">
var myString = "Type your Question' here testin to post from chrome";
</script>
<input type='button' value='send mails' onclick="sendmails(myString)">
qui est beaucoup plus agréable :-)
Peut-être pas encore parfait ... Mais, maintenant, je pense que vous obtenez le point ;-)
En sidenote: json_encode
existe seulement depuis PHP 5.2 ... alors vous pourriez voulez vérifier la version de PHP que vous utilisez ...
+1 pour mentionner la possibilité de $ sendQuestion contenant des guillemets. C'est en fait un trou XSS potentiel. –