ホームページ > バックエンド開発 > PHPチュートリアル > Yii はビュー内に変数を作成し (PHP コードを保護)、js ファイル内で以前に作成した変数のコード インスタンスを呼び出します。

Yii はビュー内に変数を作成し (PHP コードを保護)、js ファイル内で以前に作成した変数のコード インスタンスを呼び出します。

PHP中文网
リリース: 2023-03-01 06:02:01
オリジナル
1373 人が閲覧しました

まずコードに移動します:

これはviewsite/reg.phpです

    $cs = Yii::app()->getClientScript();
    $cs->registerScriptFile('/js/verify-code.js',CClientScript::POS_END);
ログイン後にコピー

これはlayout/main.phpです

$commonValue = json_encode([
            'SmsVerifycodeUrl' => Yii::app()->createAbsoluteUrl('site/SendSmsCode'),
            'WaitSecond' => WapMember::DEFAULT_INTERVAL,
    ]);
Yii::app()->clientScript->registerScript("var commonValue = $commonValue",CClientScript::POS_END);
ログイン後にコピー

これはverify-code.jsファイルです

var initSecond = (typeof CommonValue.WaitSecond) == "undefined" ? 180 : CommonValue.WaitSecond,
    waitSecond =initSecond,
    SmsVerifyCode = function(btn, form) { this.getBtn = btn; this.form = form;},
       SCF;
ログイン後にコピー

Chromeブラウザで報告されたエラーです
verify-code.js:1 Uncaught ReferenceError: CommonValue is not defined

返信内容:

最終的に判明:

Yii::app()->clientScript->registerScript("var commonValue = $commonValue",CClientScript::POS_END);
ログイン後にコピー

を書く際にパラメータが抜けていることが判明しました。結果は次のようになります:

Yii::app()->clientScript->registerScript('commonValue',"var commonValue = $commonValue",CClientScript::POS_END);
ログイン後にコピー

CommonValue の POS_END は単に POS_HEAD に調整されます。

または、$commonValue が main.php の render('reg.php') の前に配置されていることを確認してください。2 つの registerScript が順番に配置されています

ps:

verify-code.js は、このファイル内のグローバルな変数参照する代わりに関数オブジェクトを返すことができますか?
私は以前にそのようなコードを保守したことがありますが、それは嫌です

上記は、Yii がビュー内で変数を作成し (PHP コードを保護)、js ファイル内で以前に作成した変数を呼び出すコード例です。PHP の関連コンテンツに注目してください。中国語のウェブサイト (m.sbmmt.com)!

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート