我的代码如下:
<? $test = new com("Soundclass.Soundrec"); ?>
<? $test->startrec ?>
<script>
function stop(){
var stop_record = "<?=$test->stoprec;?>";
}
</script>
我正在按一下按钮运行停止功能。但是php函数似乎在没有点击的情况下运行。
这样做的目的是在点击该按钮时停止录制。
答案 0 :(得分:3)
你有一点逻辑错误:
PHP是服务器端,在调用文档时会在服务器上执行。 Javascript是客户端并且被动态调用,它不能再次重新执行任何php代码。
在浏览器中查看源代码,您就会明白了!
但是你可以对该类进行ajax调用,并使用(在脚本中定义)get / post变量执行stoprec()
方法。但是,由于这仍然无法处理对象的同一个实例,所以不幸的是你可能不得不重新考虑整个脚本!
答案 1 :(得分:1)
您要做的事情根本不可能:您正在混淆PHP(在服务器端运行)和JavaScript(在客户端运行)。
您必须构建第二个停止录制的PHP脚本,并使用Ajax从JavaScript调用。
答案 2 :(得分:1)
调用$test->stoprec
可能会停止录制(不知道具体是Soundclass.Soundrec
)。
正如您在页面发送之前调用它一样,稍后按停止按钮不会在此处进行更改。
你需要稍后执行PHP(在按钮点击之后),但是你在这里遇到的一般问题是$test
中的com对象将无法生存(它将是一个新的)。
我在这里看到的唯一解决方案是您创建一个为您管理录音的守护进程。这适用于AJAX,但并非无足轻重。所以简短(而且悲伤)的答案是:不容易实现。