2017-02-17 3 views
1

Я использую фреймворк (yii2), и я добавляю код jQuery внутри своего представления. Например:Код jQuery внутри MVC

$js = '$(document).ready(function(){ 
     $("#showmap").click(function(event){ 
      ..... 
      function success(position) { 
      ... 
      $.ajax({ 
       url : "../frontend/web/getContent.php", 
       type: "POST", 
       data: {success : "success", latitude : latitude, longitude : longitude}, 
       success: function (data){ 
        var jsonmap = JSON.parse(data); 
        var address = jsonmap["results"]["0"]["formatted_address"]; 

        $("#StreetName").val(address); 
       } 
      }); 
      } 
     }); 
    }); 
'; 

$this->registerJs($js); 

У меня есть файл getContent.php в веб-каталоге. Где подходящее место для размещения файла? Каков наилучший способ сделать этот код? Все отлично работает, но я не знаю, является ли это лучшим способом.

ответ

1

Это нормально, как это указано в Yii documentation

Just: - Вам не нужно, чтобы закрыть свой код в $ (документ) .ready, потому что Yii будет делать это по умолчанию. - Как лучшая практика, я предлагаю вам добавить имя в свой блок кода, чтобы вы могли его повторно использовать. - Как лучше практика всегда лучше поставить свой код во внешних файлах, так что вы можете использовать его, и добавить его в пучок для того сцепляются и minfied

Пожалуйста, проверьте ссылку документации я указал выше, в разделе регистрирующих встроенные скрипты, где это объясняется.

+0

И _getContent.php_, в каком месте стоит разместить его и использовать в URL-адресе? –

+1

@ Juan.Queiroz lol, извините ... Я так не думаю ... Лучше бы поставить эту функцию внутри действия, так что вы можете назвать ее базовым-url/controller/action ... Я не знаю, я рекомендую, как вы это сделали. –

1

Подобно тому, как дополнение к принятому комментарию для больших JS, а также кода CSS я всегда использованияКонтактного этого формат

$script=<<<EOF 
// my code 
EOF; 

С этим я могу использовать " и ' внутри коды JS, а также легко использовать PHP переменных например включают $ url.

Мне нужно помнить только о том, чтобы избежать всех остальных строк, которые будут распознаны как переменные php, но это не так. Чтобы избежать просто добавьте \ before the $, например \$no_php_variable.

Впоследствии я использую $this->registerJs($script, View::POS_READY,'my-button-handler'); как обычно для регистрации сценария.

Смежные вопросы