我有一个用codeigniter开发的网站 在我的网站的许多页面中,我有更多相同的函数javascript / jquery与PHP中的一些字符串,如下所示:
function change_city_by_nation(nation_id){
var site_url_city ="<?php echo(site_url('/backend/city/get_city_by_nation_id')); ?>";
$.ajax({
url: site_url_city,
async: false,
type: "POST",
data: "nation_id="+nation_id,
dataType: "html",
success: function(data) {
$('#city').empty();
$(data +' option').each(function(index){
$('#city').append($(this).html());
});
$('#city').prepend("<option value='0' selected='selected'>Tutte le città</option>");
}
});
}
在php中使用某些字符串收集所有这些javascript函数的最佳位置在哪里?
- JS文件(但是当我调用它时我必须传递php字符串)
- 助手(但怎么样?)
- 文件php在哪里声明函数JS就像common.php(但在哪里放它以及如何调用它?)
你的范围有一些解决方案吗? 感谢
答案 0 :(得分:2)
如果你需要对这些脚本进行分组,你可以制作一个常规的.js文件,但是修改了函数参数 - 让PHP发送的所有值实际上都成为函数参数。 所以,例如,
function change_city_by_nation(nation_id){...}
成为
function change_city_by_nation(url_from_php, nation_id){...}
等......
当然,之后需要修改函数体和函数调用(从视图中)。
但是,如果你有一个仅在单个页面上使用的函数,那么将JS函数保留在那里并嵌入PHP值就完全可以接受了,就像在你的例子中一样。
答案 1 :(得分:0)
在<head>
(或主JS文件之前的某个地方)创建一个JS变量,这是一种常见的做法,它引用基本URL或后端生成的JS所需的其他常见变量。
<script>
var SITE_URL = "<?php echo site_url(); ?>";
</script>
然后,您的Javascript文件将包含在<body>
HTML源代码的末尾,并且可以在必要时使用这些变量。
如何生成初始变量取决于您在应用程序中处理模板的方式。一个通用的页眉/页脚将使整个过程更容易。