Загрузка...

Js + mysql

Тема в разделе Программирование создана пользователем ma110y 17 янв 2018. (поднята 17 янв 2018) 241 просмотр

  1. ma110y
    ma110y Автор темы 17 янв 2018 Недокодер/Недодизайнер 149 16 июн 2017
    Есть код живого поиска на 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
    });

    });

    Мне нужно создать массив в JS из моей таблицы mysql. Порылся в инете. Нашел такой способ

    <?
    $result = mysql_query("SELECT city FROM city ");
    $myrow = mysql_fetch_array($result);
    ?>
    <script>
    var langs = <?php echo json_encode($myrow); ?>
    </script>
    но он не работает.
    Что можно сделать или что не правильно?
     
    17 янв 2018 Изменено
  2. Zamba_inactive363280
    Zamba_inactive363280 5 апр 2018 Первый тост — за локалхост 3 4 апр 2018
    Рекомендую создать два файла: первый php, в котором идет выборка из mysql, и второй - сам шаблон в котором есть т.н. Дырки под переменные.
    Выглядеть это будет как-то так
    .php
    Код

    $rows = json_encode($array);
    $template = file_get_contents("file.html");
    //MYQUOTE - особые кавычки называются heredoc
    echo(eval(<<MYQUOTE {$template} MYQUOTE;));
    .html
    Код

    <script>
    var a = {$rows};
    <\script>
    Выполняется очень быстро, главное фильтровать весь пользовательский ввод, чтобы никто не смог подставить php функцию в код внутри eval()
    За точность скрипта не ручаюсь, тк пишу с телефона, но направление примерно такое.
    Альтернативным (и лучшим) вариантом, будет получать эти данные через AJAX
     
Top
Загрузка...