加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何(本地)从PHP调用JavaScript函数(在Raspberry Pi上)

发布时间:2020-12-13 18:02:33 所属栏目:PHP教程 来源:网络整理
导读:我处于一种轻微的困境,我无法真正理解如何继续. 我有一个设置,我在本地托管一个网站,在Raspberry Pi上,用于向LED甜甜圈扬声器发送命令.该网站还包含一个调度程序,允许人们将音乐播放列表和licht-scenes拖放到日期和时间.这个概念是这些将自动触发. 该网站上
我处于一种轻微的困境,我无法真正理解如何继续.
我有一个设置,我在本地托管一个网站,在Raspberry Pi上,用于向LED甜甜圈扬声器发送命令.该网站还包含一个调度程序,允许人们将音乐播放列表和licht-scenes拖放到日期和时间.这个概念是这些将自动触发.

该网站上的界面有几个我们可以调用的功能.关键是,我正在使用Cronjobs来启动PHP脚本,例如从我的MySQL数据库中获取信息并使用该信息(licht-scene / audio文件的日期时间字符串)发送到LED甜甜圈和扬声器.

我的问题是everywhere我搜索过,人们告诉我PHP无法访问JS函数,只是因为它们是服务器端和客户端,或者它必须在一个文件中.

但是,所有这些脚本等都是在Raspberry Pi上本地运行的,而我正在处理预先存在的代码.

我会告诉你一些片段:

我想调用的函数:(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>
        <?   
}

我真的希望你们和gals至少可以给我一些关于如何进行的指示.非常感谢!

附:我想发布更多链接来表明我一直在做研究,但我现在只允许2.我很抱歉!

启动脚本:
function sendStartSceneAjax(URL_address,errorThrown) {
        document.getElementById("sceneplay").innerHTML = "error playing: " + filename;
        console.error("OH SHIT STARTSCENEAJAX " + errorThrown + " " + XMLHttpRequest + URL_address + filename + startmodulo);
    } }); }

和:

setInterval( function( e ) {
            $.post( '/to_php_script_to_get_song_info.php',function( returnData ) {
                    if ( returnData != '' ) {
                        returnData = JSON && JSON.parse(json) || $.parseJSON(json);
                        sendStartSceneAjax( returnData.URL_address,returnData.filename,returnData.startmodulo );
                    }
                });
        },500 );

然后在PHP部分:

//find whatever songinfo is about to start
<?php
    $data = array(
        'URL_address' => $found_url_address,'filename' => $found_filename,'startmodulo' => $found_startmodulo,);

echo json_encode( $data );
?>

通过这种方式,您可以每隔500毫秒调用一次搜索songinfo和照明内容的位,如果找到则返回数据.当脚本找到一些时,它会使用适当的变量调用sendStartSceneAjax.也许你可以使用其中一些.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读