Можно ли использовать Javascript file.js и сценарий

#javascript #html

#javascript #HTML

Вопрос:

Я пытаюсь использовать id3.js файл и вызов функции внутри скрипта, но он не работает.

Это часть html, которая находится внутри файла PHP:

 <script type="text/javascript" >
    function getValue (dir) {
        // var ret = <?php echo getDirs();?>
        var ret = {0: 'dir', 1: dir};
        return ret;
    };
</script>
 

В id3.js файл:

 $(document).ready(function () {
    $('.dKeyT').on('click', function () {
        var tag = $(this).attr('tagName');
        alert("click " tag);
    });

    $('#dir').on('input', function() {
        var inp = $(this).val();
        var n = inp.lastIndexOf('/');

        if (n !== -1) {
            var dir = inp.substring(0, n 1);
            alert(n   " dir: "   dir);

            var files = getValue(dir);
            alert(files);

            for (var file in files) {
                alert(files[file]);
            }
        }
    });
});
 

Возможно ли сделать что-то подобное?

Консоль:

Ошибка неперехваченной ссылки: значение GetValue не определено https://www.country-radio.eu/id3.js:16 jQuery 8 https://www.country-radio.eu/id3.js:7 jQuery 13

getDirs должен предоставить список каталогов, но в настоящее время он закомментирован

id3.js 7 . $('#dir').on('input', function(){

id.js 13 alert(n " dir: " dir);

Правка2

Я попробовал разные мысли, и вдруг я получил сообщение об ошибке ret не определено. Итак, я попытался сделать a var ret = []; перед заполнением переменной ret. И это работает, невероятно!! Вот мой окончательный код тега script:

 <script type="text/javascript" >
    function getValue(dir){
    var ret = [];
    ret = <?php echo json_encode(getDirs());?>
    return ret;
    };
</script> 
 

А также функция php getDirs

 function getDirs(){
    error_log("GetDirs called");
    $ret = array();
    $ret[] = 'File1';
    $ret[] = 'File2';
    return $ret;
}
 

Спасибо за поддержку!

Кстати, вызов функции php из JS работает только в том случае, если он находится между тегами sript, а не внутри файла x.js. ret = <?php echo json_encode(getDirs());?>

Комментарии:

1. Что getDirs возвращает? Какие ошибки появляются в консоли браузера?

2. ваш id3.js файл выполняется перед вторым тегом скрипта и пытается получить доступ к методу, который еще не определен. Попробуйте переместить второй тег скрипта выше (до id3.js тег скрипта), поэтому он будет выполнен до id3.js

3. Я переместил getValue(dir) функцию перед id3.js называется. Результат тот же getValue is not defined. Сценарий и id3.js раздел заголовка файла now. Может ли это быть проблемой, вызов и функция находятся в разных файлах. Но я также попытался поместить код jquery из id3.js файл в тег script. Он также не работает.

4. «если он находится между тегами sript, а не внутри файла x.js», потому что файл .js не анализируется php….