먼저 코드를 입력하세요:
보기site/reg.php
$cs = Yii::app()->getClientScript(); $cs->registerScriptFile('/js/verify-code.js',CClientScript::POS_END);
this 레이아웃/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;
크롬 브라우저 기기에서 보고한 오류 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') 앞에 배치되는지 확인하세요. 두 개의 RegisterScript가 순서대로 있습니다
ps:
verify-code.js가 이 파일을 하는 대신 function 또는 object를 반환할 수 있습니다. 참조 전역 변수 ?
이런 코드를 유지한 적이 있는데 역겨워요
위는 Yii가 뷰에서 변수를 생성하고(PHP 코드 보호), 앞서 생성된 변수를 js 파일에서 호출하는 코드 예제의 내용입니다. .더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!