【发布时间】:2015-11-27 14:10:10
【问题描述】:
我处于一个轻微的困境中,我无法真正理解如何进行。 我有一个设置,我在本地托管一个网站,在一个用于向 LED 甜甜圈 + 扬声器发送命令的 Raspberry Pi 上。该网站还包含一个调度程序,允许人们将音乐播放列表和灯光场景拖放到日期和时间。这个概念是这些将被自动触发。
这个网站的界面有几个我们可以调用的功能。关键是,我正在使用Cronjobs 触发 PHP 脚本,例如从我的 MySQL 数据库中获取信息并使用该信息(日期+时间+licht-scene / 音频文件的字符串)发送到 LED -甜甜圈和扬声器。
我的问题是everywhere我已经搜索过,人们告诉我PHP无法访问JS函数,仅仅是因为它们是服务器端与客户端,或者它必须在一个文件中。
但是,所有这些脚本等都是在 Raspberry Pi 上本地运行的,我正在处理预先存在的代码。
我会给你看一些sn-ps:
一个我想调用的函数:(URL_address不是很有用,和startmodulo一样,后面可以应用。)
function sendStartSceneAjax(URL_address, filename, startmodulo){
$.ajax({
type: "POST",
dataType: "json",
url: "/cgi-bin/scene?"+Math.random(), //"/cgi-bin/scene?"
data: {file: filename, startdelaymodulo:startmodulo },
success: function (data) {
updateScene(data);
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
document.getElementById("sceneplay").innerHTML = "error playing: " + filename;
console.error("OH SHIT STARTSCENEAJAX " + errorThrown + " " + XMLHttpRequest + URL_address + filename + startmodulo);
} }); }
只是我构建的一个临时测试——显然不起作用,但可能会告诉你我的想法:
if($split_sentence_2 == $nowDate)
{
?>
<button name="Play" onclick="startSelectedSceneFromDB('Blauwe_Pulse.csv');" class="play" title="<? echo $label_play; ?>"></button>
<?
}
我真的希望你们至少能给我一些关于如何进行的指示。将不胜感激!
附言我想发布更多链接以表明我一直在做研究,但目前我只允许 2 个。抱歉!
【问题讨论】:
-
虽然由于你已经知道的原因 php 无法调用 js 函数,但这个特定的 js 块是一个 ajax http 请求,它可能会以某种方式被重写为 php 代码。也许甚至可以跳过 http 部分,并且您在请求中调用的 cgi-bin 脚本直接从 php 通过 shell 执行。
-
也许你可以稍微重构一下,用一个调用 php scipt 的 setinterval 函数开始整个事情,在 php 脚本中你调用日期并获取歌曲数据和照明信息,然后回显一个调用到 javascript 然后触发脚本我会发布一个答案来澄清
-
感谢 Calimero,Wolfeh -- 两个 cmets 都有非常合理的观点,我将开始研究和测试一下。
-
我很确定,你正在让你的项目比应该的更复杂。很可能您正在为您的问题寻找错误的解决方案!分享这个 JS 应该由 PHP 运行的原因和方式,以及你希望你的设备做什么,我们可以告诉你 whitch 是最好的方法。
标签: javascript php