2017-05-22 47 views
1

私の問題に対する答えが見つからず、これが可能かどうかもわかりません。PHP変数が定義されているかどうかを確認するJavaScriptチェック

javascriptでPHP変数が定義されているかどうかを確認する方法はありますか?私はJavaScriptでエラーを得た定義されていない

var op = <?PHP echo json_encode($op); ?>; 

$op場合:私は、この変数は、PHPには存在しないため、これは正常であることを理解

Events:362 Uncaught SyntaxError: Unexpected token) 

この

は一例です。しかし、変数が存在しない場合、エラーを回避する方法はありますか?

答えて

1

変更を。 Javascriptは、ユーザーが応答を受け取るとブラウザで実行されます。あなたが描写しているように「コミュニケーションする」ことは不可能です。 $opが空の場合はPHPでテストし、それに応じて出力してください。

+0

これは完璧に動作します! –

2

あなたはそれをチェックすることができます応答をしてもユーザーに送信される前に、PHPは、サーバー上で実行される

var op = <?PHP echo (!empty($op) ? json_encode($op) : '""'); ?>; 

:へ

var op = <?PHP echo json_encode($op); ?>; 

var op = <?php echo (isset($op) && $op) ? json_encode($op) : 'null'; ?>; 
+0

ため '&& $ op'チェックを行いますか? – Swellar

+0

これは 'if($ op)'と等しく、$ opが空でないか空でないかを調べます。 –

+0

何かの理由で、この答えは、すべてのjavascriptの実行をブロックするねえ...上記の1つはうまく動作します!とにかくおかげで –

2

empty()が最適です。 http://php.net/manual/en/function.empty.php

var op = <?= !empty($op) ? json_encode($op) : '""' ?>; 
+0

ありがとうございました。これはうまくいきますが、最初の回答が最初に来たので、私は彼の答えを正しいものとしてマークします! –

+1

問題ありません。私たちが助けてくれてうれしいです。 – CodeGodie

0

このようにしてみてください。

var op = <?= isset($op) ? json_encode($op) : "" ?>; 
関連する問題