Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 隐藏输入更改值时播放音频_Php_Jquery_Ajax - Fatal编程技术网

Php 隐藏输入更改值时播放音频

Php 隐藏输入更改值时播放音频,php,jquery,ajax,Php,Jquery,Ajax,当隐藏的输入字段改变值时,我需要播放一个音频文件。 这个隐藏的输入位于中,由Ajax刷新以更新值 我需要做的是,(例如)当值变为“是”时,需要播放Clap.wav,否则,当值变为“否”时,必须播放boo.wav 任何人都可以给我一个示例代码或一个想法? 感谢那些愿意帮忙的人 这是我的一些代码 这是隐藏的输入字段代码。它位于platinum.php上id为connExcel的表上 <input type="hidden" name="indVal" id="indVal" value=" &

当隐藏的输入字段改变值时,我需要播放一个音频文件。 这个隐藏的输入位于
中,由Ajax刷新以更新值

我需要做的是,(例如)当值变为“是”时,需要播放
Clap.wav
,否则,当值变为“否”时,必须播放
boo.wav

任何人都可以给我一个示例代码或一个想法? 感谢那些愿意帮忙的人

这是我的一些代码

这是隐藏的输入字段代码。它位于platinum.php上id为
connExcel
的表上

<input type="hidden" name="indVal" id="indVal" value=" <?php echo $objWorksheet->getCellByColumnAndRow(5, 5)->getOldCalculatedValue();  ?> ">

在设置隐藏输入值的代码中执行此操作

$('#myHiddenID').val(myValue).trigger('change');
然后像这样使用更改事件

$('#myHiddenID').change(function(){
     var OnOff = $(this).val();
     if (OnOff == "ON") { // play clap}
     if (OnOff == "OFF) { //play boo}
})

HTML:

或者您可以这样做:

将文件命名为:
yes.wav
no.wav

function checkInputValue( snd ){
    var sound = new Audio( snd+'.wav');
    sound.play();     
}

var AJAXval = ("YES").toLowerCase() ; // the returned value to lowercase
checkInputValue( AJAXval );

听起来您完全是在从DOM中添加和删除元素,因此您需要观看
DOMNodeInserted
事件。幸运的是我们能坚持下去。我们假设隐藏的输入有一个类
hiddenInput
。然后我们需要获取我们的源元素,恰当地命名为
,我们将使用jquery的
.get()
方法,然后使用HTML5音频api的
.play()来调用它们

$(document).on('DOMNodeInserted', function(e){
    if(e.srcElement.className == 'hiddenInput'){
        if(e.srcElement.value == 'yes'){
            $('#yesAudio').get().play();    
        }else{
            $('#noAudio').get().play();
        }
    }        
});​​​​​

我想这就是您想要的。

只是一个建议,为什么不在设置隐藏值的代码中播放wav?因为我需要确定值是否更改。我曾尝试使用JQuery的.change,但它不起作用。那么隐藏输入的值是如何变化的?这意味着您需要检查一个时间间隔,以确保该输入的值发生了变化??你能更详细地描述一下吗?@PeeHaa它被Ajax改变了。隐藏输入字段所在的表由Ajax自动刷新。我不知道第一个代码放在哪里。因为PHP代码是隐藏字段值的来源。
function checkInputValue(){

    var files = { "YES": "Clap.wav", "NO": "boo.wav" };
    var sound = new Audio( files[ $('#inp').val() ] );
    sound.play();

}

checkInputValue(); // USE WHEREVER YOU LIKE
function checkInputValue( snd ){
    var sound = new Audio( snd+'.wav');
    sound.play();     
}

var AJAXval = ("YES").toLowerCase() ; // the returned value to lowercase
checkInputValue( AJAXval );
$(document).on('DOMNodeInserted', function(e){
    if(e.srcElement.className == 'hiddenInput'){
        if(e.srcElement.value == 'yes'){
            $('#yesAudio').get().play();    
        }else{
            $('#noAudio').get().play();
        }
    }        
});​​​​​