株式会社あすかでは一緒に働く仲間を募集しています
PHPからJavaScriptに変数の受け渡しで躓いた事
Photo by Possessed Photography on Unsplash
弊社エンジニアブログからの転送です
詳しくは
https://www.aska-ltd.jp/jp/blogs
をご覧ください。
PHPからJavaScriptに変数を受け渡しして、処理を行おうとしても失敗する場合が発生!!
結論から言いますと、空文字列チェックが必要でした。
変数を下記のように宣言し、
$search = '';
JavaScriptファイルに変数を受け渡し部分も下記のように宣言致しました。
<?php
echo '<script>', PHP_EOL;
echo 'var search = ', $search, ';', PHP_EOL;
echo '</script>', PHP_EOL;
?>
コンソールを確認すると
Uncaught SyntaxError: Unexpected token ';'
どうやら予期しない「;」でエラーが発生しているみたいです。
もし、変数に値が入らずにそのまま受け渡しを行うと
var search = ;
変数に入れる値がありませんね... (NULLの場合でも同じでした)
受け渡し前に空文字列チェックとして下記を追加してみました。
$search = $search != '' ? $search : '""';
変数に値が入らなくても
var search = "";
と空文字列が入るようになりましてエラーが出なくなりました。
空文字列もしくはNULLを受け渡しする可能性があるときは注意しましょう。