Geben Sie zunächst den Code ein:
Dies ist die Ansichtsite/reg.php
$cs = Yii::app()->getClientScript(); $cs->registerScriptFile('/js/verify-code.js',CClientScript::POS_END);
Dies ist in der Datei „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);
Dies ist in der Datei „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;
Das ist Chrom-Browser Fehler vom Gerät gemeldet verify-code.js:1 Uncaught ReferenceError: CommonValue is not defined
Endlich gefunden:
Es stellte sich heraus, dass es geschrieben wurde
Yii::app()->clientScript->registerScript("var commonValue = $commonValue",CClientScript::POS_END);
Ein Parameter fehlt. Das Ergebnis sieht so aus:
Yii::app()->clientScript->registerScript('commonValue',"var commonValue = $commonValue",CClientScript::POS_END);
POS_END von CommonValue wird einfach an POS_HEAD angepasst.
Oder stellen Sie sicher, dass $commonValue vor render('reg.php') in main.php platziert wird. Die beiden RegisterScripts sind in der richtigen Reihenfolge
ps: Kann
verify-code.js Funktion oder Objekt zurückgeben, statt „Führt diese Datei aus“ Referenz globale Variable ?
Ich habe solchen Code schon einmal gepflegt, er ist widerlich
Das Obige ist der Inhalt des Codebeispiels, in dem Yii Variablen in der Ansicht erstellt (zum Schutz des PHP-Codes) und die zuvor erstellten Variablen in der js-Datei aufruft Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!