首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将函数分配给用PHP脚本创建的select

将函数分配给用PHP脚本创建的select
EN

Stack Overflow用户
提问于 2016-12-21 03:23:06
回答 2查看 73关注 0票数 0

我有一个主选择标签“类别”,它调用php脚本来‘回显’一个新的选择标记:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   <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脚本的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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>';
?>

因此,Subme选择标记是echoed脚本并加载到div channels中,一切都很好,但是PHP onchange=“showSubme(This)”分配给它的函数不起作用:-(

这个showSubme函数就像showme(str) (上面给出的),并将触发一个类似的PHP脚本。

为什么它不起作用?我漏掉了什么东西吗?我感谢所有的答案!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-21 04:39:03

简单地解决以下问题:在开头添加一个禁用选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <?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>';
?>

谢谢你!

票数 0
EN

Stack Overflow用户

发布于 2016-12-21 03:30:49

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var e = document.getElementById("country");

在html中,您调用的是id类别,而不是国家。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<select id="category" onchange="showme(this);">

快乐编码,Max

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41261643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文