#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….