Javascript 通过php命令行执行js函数
我在Codeigniter工作。我有一个视图book.php,它后面有一个js文件frontend_book.js,其中包含一个同步日历的函数 frontend_book.js中的片段Javascript 通过php命令行执行js函数,javascript,php,codeigniter,command-line,Javascript,Php,Codeigniter,Command Line,我在Codeigniter工作。我有一个视图book.php,它后面有一个js文件frontend_book.js,其中包含一个同步日历的函数 frontend_book.js中的片段 googleSync: function() { provider_id= $('#select-provider').val(); getUrl = GlobalVariables.baseUrl + 'google/sync/' + provider_id; jQuery.get(ge
googleSync: function() {
provider_id= $('#select-provider').val();
getUrl = GlobalVariables.baseUrl + 'google/sync/' + provider_id;
jQuery.get(getUrl,provider_id, console.log('Google sync successful'),'json');
}
我希望使用google.php控制器中的php函数独立于cron作业中的视图运行此函数,该函数的功能如下:
public function syncallproviders() {
//get the array of providers:
$this->load->model('providers_model');
$providers = $this->providers_model->get_available_providers();
//for each providers as provider run the js googleSync
foreach ($providers['id'] as $provider) {
//Run googleSync where #select-provider is $provider
}
}
然后我可以在cron作业中使用
php /mypath/index.php "google" syncallproviders
我如何整合这个
这是我将两者结合在一起的最佳猜测:
<?php
//get the array of providers:
$this->load->model('providers_model');
$providers = $this->providers_model->get_available_providers();
//for each providers as provider run google sync
foreach ($providers as $provider) { ?>
<script type="text/javascript">
var getUrl=<?php echo $this->config->base_url().'/google/sync/'.$provider['id']; ?>,
var provider_id =<?php echo $provider['id']; ?>,
jQuery.get(getUrl,provider_id, console.log('Google sync successful'),'json'),
</script>
<?php }
var getUrl=,
变量提供程序\u id=,
jQuery.get(getUrl、provider\u id、console.log('googlesync successful')、'json'),
无法从命令行运行js。它只在浏览器和其他设置为执行它的环境中运行。您想做的一切都必须使用PHP或其他在命令行上运行的语言来完成。如果出于什么原因,您希望将其作为cron运行,并且希望保持应用程序的现状(用PHP编写的mvc),那么您可以使用无头浏览器(如phantomjs)从作为cron运行的bash脚本中点击所需的url。这有点复杂-但它可以满足你的要求。-如果您想通过php保存所有内容,甚至还有一个php包-