Здравствуйте. У меня есть два файла с кодом. В первом код джаваскрипта, а во втором ПХП. В ПХП есть две переменных в которых хранятся массивы. Эти две переменные мне нужно передать во второй файл в переменные джаваскрипта. Скажите, как правильно это сделать? Я пробывал сделать следующее: Код (Text): <? $name=array(); //тут что-то происходит return $name; ?> <script> name="<? echo $name; ?>; </script> Это у меня не сработало. P.S. одна из функций джаваскрипта должна вызываться при загрузке страницы.
1. Просто массив через echo не вывести, выводить для js через json_encode() 2. Что за бред return ? Куда return? Это же не функция
@blroman почитай что делает return "после", либо пихай еду в глаз, жопой разговаривай, ушами ссы - вот твой код --- Добавлено --- типичный pи3дешь. Если ты был там реально, то бы знал English на уровне разговорной/письменной речи и не стал писать по ГовноРусскому PHP как ПХП - т.к. воспроизводят так англ. слова only люди с рашки, которые даже писать по русски не умеют в компьютере, где подсветка даже ругается волнами "пробывал". По гугли... пробОвал ?
@ADSoft спасибо за ответ. Я знаю, что выводить надо через json_encode(). Этот кусочек кода был просто для примера. Согласен, пример не очень хороший. Я не могу понять, как принять результат в JS. @MouseZver Это всё, что ты мне можешь написать? То есть, практической помощи от тебя ни какой. Только шум. Да, я живу в Канаде и знаю английский и мог бы написать PHP и JavaScript. Ты сам пишешь как попало, начинаешь предложение с маленькой буквы. Ты, кстати, оскорбил русский, назвав его ГовноРусским. Так может тебе стоит писать не на русском, а на анлгийском. Ты же уверен, что знаешь его лучше меня. Если захочешь помочь мне, буду благодарен. Спасибо за ответ.
Надо понимать что такое php и js. Ваш php код формирует необходимый html, в том числе можно и вставки js кода. Как таковой "передачи в js" не существует, если не считать Аякс запросы. Там идёт прямой запрос к php, результат в js... Но это скорее передача данных. Конкретно у вас какая проблема? Что не получается?
@ADSoft Сначала скажите, я правильно сделал? PHP: $someArray=new Array('1','2','3','4','5'); echo json_encode($someArray); Если да, то как получить результат в JavaScript?
У меня получилось передать данные из PHP в JavaScript. Я это сделал через fetch. PHP: $arr=new arrya(1,2,3,4,5,6); $a=json_encode($arr); echo $a; Код (Javascript): fetch('myfile.php') .then(res => res.json()) .then((out) => { console.log('Output: ', out); }).catch(err => console.error(err)); Теперь мне надо узнать как получить имена всех папок в определенной папке. Как я знаю, есть два метода: glob('folder/*',GLOB_ONLYDIR); и scandir(); Каким из них пользоваться?
Если я использую scandir();, то получаю ошибку в браузере Код (Text): SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data showGals.js:5:25 <anonymous> http://localhost/scripts/showGals.js:5 (Async: promise callback) <anonymous> http://localhost/scripts/showGals.js:5 Если использую glob, то получаю пустой массив. Хотя, в указанной мной директории есть поддиректории.
@ADSoft Я уже разобрался в чем дело. Когда я написал PHP: $path="/*"; $dirs=[]; $dirs=glob($path,GLOB_ONLYDIR); echo json_encode($dirs); JavaScript получил папки из диска С:. Я, конечно же, написал полный путь и получил результат, но что будет когда я проект в интернете опубликую?
Еще такой вопрос. Вот код Код (Javascript): let v1=[]; fetch('myfile.php') .then(res => res.json()) .then((out) => { v1=out; }).catch(err => console.error(err)); когда скрипт выполняется автоматически, то v1 не получает значение out, а если выполнить в дебаггере пошагово, то v1 получает значение. Я думаю, что есть задержка во времени, то есть проходит какое-то время до получения данных из PHP. Тогда как передать в v1 значение из out для дальнейшей работы?
почитайте про асинхронные запросы, fetch как раз такой и весь вопрос где и как вы смотрите свою переменную Код (Javascript): let v1=[]; fetch('myfile.php') .then(res => res.json()) .then((out) => { v1=out; console.log('тут будут именно после получения данных'); }).catch(err => console.error(err)); console.log('тут - как повезет, если ajax отработает раньше то может и быть, а может и не быть');
Спасибо за подсказку. Если вместо v1=out; написать console.log(out); то вывод будет немедленный, в любом другом случае - как повезет.