2016-12-21 2 views
0

У меня есть главный выберите тег «категории», который OnChange называет PHP скрипт для «эхо» нового выбора тега:Назначение функции отборное создан с 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> 

А вот функция, которая вызывает РНР скрипт:

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>'; 
?> 

Так Subme Sel ect - echoed скриптом PHP и загружается в div channels, все в порядке, но функция, назначенная ему скриптом PHP onchange = "showSubme (this);" не работает :-(

эта функция showSubme в точности как ShowMe (ул) (приведенной выше) и будет срабатывать подобный скрипт.

Почему он не работает? Я пропустил что-то здесь? Я благодарен всем ответам

+1

где функция showSubme()? Я думаю, что это должно быть в выходе lstavai.php. – JustBaron

ответ

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>'; 
?> 

Спасибо !.

1

вы можете взглянуть на это в вашем коде:!.

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

в вашем HTML вы назвали идентификатор категории, а не страна

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

Счастливый кодирования, Макс

+0

О, это просто потому, что я борюсь с редактором, чтобы написать свой вопрос. Он правильно пишет в моем html, потому что конечный результат есть с красивым заполненным тегом select. моя проблема заключается в функции showSubme, которая не хочет запускать: я вставляю ее здесь: – karmel

+0

function showSubme (strm) {\t \t if (strm == "") { document.getElementById ("details"). innerHTML = ""; возвращение; } if (window.XMLHttpRequest) { // код для IE7 +, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// код для IE6, IE5 xmlhttp = new ActiveXObject ("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById ("details"). InnerHTML = this.responseText; } } xmlhttp.open ("GET", "lstchl.php? Q =" + strm, true); xmlhttp.send(); } – karmel

+0

@karmel Какие проблемы возникают с редактором? Все, что вам нужно сделать, это скопировать/вставить соответствующий код на ваш вопрос. Formattubg поможет сохранить чистоту и четкость для чтения. – NewToJS