Есть код живого поиска на JS $(function(){ var langs = ["ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"]; $("#search").autocomplete({ source: langs }); }); Код $(function(){ var langs = ["ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"]; $("#search").autocomplete({ source: langs }); }); Мне нужно создать массив в JS из моей таблицы mysql. Порылся в инете. Нашел такой способ <? $result = mysql_query("SELECT city FROM city "); $myrow = mysql_fetch_array($result); ?> <script> var langs = <?php echo json_encode($myrow); ?> </script> но он не работает. Что можно сделать или что не правильно?
Рекомендую создать два файла: первый php, в котором идет выборка из mysql, и второй - сам шаблон в котором есть т.н. Дырки под переменные. Выглядеть это будет как-то так .php $rows = json_encode($array); $template = file_get_contents("file.html"); //MYQUOTE - особые кавычки называются heredoc echo(eval(<<MYQUOTE {$template} MYQUOTE;)); Код $rows = json_encode($array); $template = file_get_contents("file.html"); //MYQUOTE - особые кавычки называются heredoc echo(eval(<<MYQUOTE {$template} MYQUOTE;)); .html <script> var a = {$rows}; <\script> Код <script> var a = {$rows}; <\script> Выполняется очень быстро, главное фильтровать весь пользовательский ввод, чтобы никто не смог подставить php функцию в код внутри eval() За точность скрипта не ручаюсь, тк пишу с телефона, но направление примерно такое. Альтернативным (и лучшим) вариантом, будет получать эти данные через AJAX