将函数分配给使用PHP脚本创建的选择

时间:2016-12-21 11:23:06

标签: javascript php html ajax

我有一个主要的选择标记“category”,其中onchange调用一个php脚本来“回显”一个新的选择标记:

   <select id="category" onchange="showme(this);">
       <option value="txt">text</option>
       <option value="img">image</option>
       <option value="htm">html</option>
       <option value="aud">Audio</option>
   </select>

这是调用PHP脚本的函数:

function showme(str) {  
    var e = document.getElementById("country");
    var str = e.options[e.selectedIndex].value;      
    if (str=="") {
        document.getElementById("channels").innerHTML="";
        return;
    } 
    if (window.XMLHttpRequest) {
       // code for IE7+, Firefox, Chrome, Opera, Safari
       xmlhttp=new XMLHttpRequest();
    } else { // code for IE6, IE5
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
        if (this.readyState==4 && this.status==200) {   
            document.getElementById("channels").innerHTML=this.responseText;
        }
    }
    xmlhttp.open("GET","lstavai.php?q="+str,true);
        xmlhttp.send();
    }

这是我的PHP脚本:

<?php 
    $q = $_GET['q'];
    $files = glob('../dsx/'.$q.'/*.txt');
    echo '<select id="Subme" onchange="showSubme(this);">';
    foreach($files as $file) {
        $file = pathinfo($file);    
        echo '<option value="'.$file['basename'].'">'.$file['filename'].'</option>';
    }
    echo '</select>';
?>

因此PHP脚本的Subme选择标记为echoed并加载到div channels中,一切正常,但PHP脚本为其分配了函数        平变化= “showSubme(本);” 不起作用: - (

这个showSubme函数与showme(str)(如上所示)完全相同,并将触发类似的PHP脚本。

为什么它不起作用?我错过了什么吗? 我很感谢所有答案!

2 个答案:

答案 0 :(得分:1)

您可能需要在代码中查看此内容:

var e = document.getElementById("country");

在您的HTML中,您调用了id类别而不是国家/地区。

<select id="category" onchange="showme(this);">

快乐编码,Max

答案 1 :(得分:0)

简单解决:在开头添加一个禁用选项:

 <?php 
$q = $_GET['q'];
$files = glob('../dsx/'.$q.'/*.txt');
echo '<select id="Subme" onchange="showSubme(this);">
     <option disabled selected>Please select</option>
 ';
foreach($files as $file) {
    $file = pathinfo($file);    
    echo '<option value="'.$file['basename'].'">'.$file['filename'].'</option>';
}
echo '</select>';
?>

谢谢!。