在PHP循环中播放声音onclick

问题描述:

我正在尝试组成一个测试,其中包含每个允许朗读的问题旁边的按钮。 MP3的问题和文件名都在问题数据库中。我试图使用DHTML/javascript方法播放音频文件,避免使用HTML5(为了最大限度地提高跨设备的可用性)。我认为发生的事情是我不能在js函数中使用PHP变量。是的,这是一个共享托管服务器。不,我不认为我可以控制PHP设置。在PHP循环中播放声音onclick

这是代码。

<script language="javascript" type="text/javascript"> 
    function DHTMLSound(surl) { 
     document.getElementById("dummyspan").innerHTML= 
      "<embed src='"+surl+"' hidden=true autostart=true loop=false>"; 
    } 
</script> 

和...

while ($row = $results->fetch()) { 
     $audiofile = '/audio/starrisk'.$row['QuestionNum'].'mp3'; 
     echo '<br>' .$row["QuestionNum"] . ') ' . $row["Question"] . '<br>'?> 
     <span id=dummyspan></span> 
     <?PHP echo `<input type="button" value="Listen" onClick="DHTMLSound('$audiofile')"> `; 
     echo '<input type="radio" name="a'.$row["QuestionNum"].'" value="1" /> Yes ---- 
     <input type="radio" name="a'.$row["QuestionNum"].'" value="-1" /> No<br><br>'; 
    } 

我得到的错误是: 警告:了shell_exec()已因安全原因被禁止在testblah.php上线60

它的工作原理如下:

<input type="button" value="Listen" onClick="DHTMLSound('/audio/starrisk1.mp3')"> 

谢谢!

+0

什么是testblah.php - 60行? – Scopey

+0

Testblah.php是这个文件,第60行用“onclick = DHTML”代码表示该行。 –

+0

我刚刚意识到发生了什么事。回答如下。 – Scopey

问题是反引号。用标准双引号(")替换你的背单词引号。

请参见:

http://www.php.net/manual/en/language.operators.execution.php

+0

是的!我的错。我正在使用反引号,就像他们是双引号和单引号的另一个版本。在阅读手册后,我明白了为什么我不能以这种方式使用它们。谢谢!! –