спасибо, документации за последние два дня я прочёл вагон, если нет конкретного предложения, то это вряд ли будет результативно
А между тем - это важно. Потому как переменная существует только в рамках своей области видимости, а затем изничтожается сборщиком мусора. "Undefined variable" говорит о том, что переменной, которую ты выводишь уже к тому времени не существует (ну или имя набрано с ошибкой, такое тоже бывает). Соответственно способ, которым ты пытаешься её вывести уже не важен. В итоге получается, что способы эти скорее всего верны, надо лишь разобраться в том куда и почему пропала эта переменная.
я уже писал, но повторюсь... я вставил РНР код из рабочего РНР файла, который кормит JSON массивом скрипт Код (Text): $(function() { $('#street').autocomplete({ source: street.php }); } ); при этом, скрипт отлично читает передаваемый массив и вываливает всё мгновенно при вводе первой же буквы в поле street Теперь, после слияния кодов, я не могу вызвать строку Код (Text): echo json_encode(preg_grep($pattern, $array)); из РНР части этого же area.php файла в его HTML часть... бред То есть, JSON массив уже сидит в этом файле, потому что я вижу его через Код (Text): echo '<p> id: ' . $row [0] . ' street ' . $row [1] . ' postcobe ' . $row [2] . ' id_dimos ' . $row [3] .' id_street ' . $row [4] . '</p>'; только чуть выше, но забрать его в source: ???? я не могу... как он может уничтожиться, если я вижу это эхо на странице, выше формы... значит он живой, но автозаполнение его не видит
уже отвис ... --- Добавлено --- Лишние поля формы обрезал, но структура файла полностью сохранена: Код (Text): <?php require_once ("pg_conn.php"); $array[]=""; $qstreet = "SELECT cmac.street.id, cmac.street.street, cmac.street.postcode, cmac.street.id_dimos, cmac.street.id_street FROM cmac.street"; $ress = pg_query ($qstreet); while ( $row = pg_fetch_array ( $ress ) ) { echo '<p> id: ' . $row [0] . ' street ' . $row [1] . ' postcobe ' . $row [2] . ' id_dimos ' . $row [3] .' id_street ' . $row [4] . '</p>'; $array[]=$row[1]; } if (!empty($_GET['term'])) { $term = $_GET['term']; $pattern = '/^'.preg_quote($term).'/iu'; echo json_encode(preg_grep($pattern, $array)); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="../../css/style.css" /> <title></title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/themes/sunny/jquery-ui.css"> <script> $(function() { $('#street').autocomplete({ source: '<?.......... ?>' }); } ); </script> </head> <body> <table> <tbody> <form method="post"> <tr> <td><label for="street">Street:</label></td> <td><input type="text" placeholder="Street name" required="required" id="street" name="street" onchange="sendForm(this.form)"></td> </tr> </form> </tbody> </table> </body> </html> --- Добавлено --- если это поможет, могу дать ссылки на реальные страницы с формой... одна, работающая от внешнего файла и вторая с инкорпорированным
PHP: <?php require_once ("pg_conn.php"); $array[]=""; $qstreet = "SELECT cmac.street.id, cmac.street.street, cmac.street.postcode, cmac.street.id_dimos, cmac.street.id_street FROM cmac.street"; $ress = pg_query ($qstreet); while ( $row = pg_fetch_array ( $ress ) ) { $array[]=$row[1]; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="../../css/style.css" /> <title></title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js"></script> <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/themes/sunny/jquery-ui.css"> <script> $(function() { $('#street').autocomplete({ source: '<?= json_encode($array) ?>' }); } ); </script> </head> <body> <table> <tbody> <form method="post"> <tr> <td><label for="street">Street:</label></td> <td><input type="text" placeholder="Street name" required="required" id="street" name="street" onchange="sendForm(this.form)"></td> </tr> </form> </tbody> </table> </body> </html> ?
@romach .. Прошу прощения, зашёл в офис, сразу не увидел ответа в почте и выложил код. Вставил: Код (Javascript): $(function() { $('#street').autocomplete({ source: '<?= json_encode($array) ?>' }); } ); Ошибки не выдаёт, но и список не выпадает. В консоли виден весь список улиц: Код (Javascript): $(function() { $('#street').autocomplete({ source: '["","25 Martiou Street","Alexandreias Byway","Alexandreias Street","Alkiviadou Street","Anninou Mpampi Street","Christovasili Christou Street","Delfon Street","Ierolochiton Street","Kallas Marias Street","Kapetan Mitrousi Street","Kapetan Vangeli Street","Kornovou Street","Kritis Street","Laskaratou Street","Mela Natalias Street","Mousouri Street","Ormylias Street","Papandreou Georgiou Street","Papantoniou Zacharia Street","Skiathou Street","Sofouli Themistokli Byway","Sofouli Themistokli Street","Spetson Street","Sporadon Street","Thalitos Street","Typa Nestoros Street","Vafopoulou Georgiou Street","Vasilissis Olgas Avenue","Voga Kimonos Street"]' }); } ); При вводе буквы, в консоли пишет: Код (Text): https://...... Failed to load resource: the server responded with a status of 403 (Forbidden) ------------- <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden</h1> <p>You don't have permission to access /forms/pc/54646/["","25 Martiou Street","Alexandreias Byway","Alexandreias Street","Alkiviadou Street","Anninou Mpampi Street","Christovasili Christou Street","Delfon Street","Ierolochiton Street","Kallas Marias Street","Kapetan Mitrousi Street","Kapetan Vangeli Street","Kornovou Street","Kritis Street","Laskaratou Street","Mela Natalias Street","Mousouri Street","Ormylias Street","Papandreou Georgiou Street","Papantoniou Zacharia Street","Skiathou Street","Sofouli Themistokli Byway","Sofouli Themistokli Street","Spetson Street","Sporadon Street","Thalitos Street","Typa Nestoros Street","Vafopoulou Georgiou Street","Vasilissis Olgas Avenue","Voga Kimonos Street"] on this server.</p> </body></html> Проверил права доступа к папке: Код (Text): [root@iotanet 54646]# cd /var/www/html/forms/pc [root@iotanet pc]# ls -l total 4 drwxrwxr-x 2 apache apache 4096 Jan 26 12:24 54646 С какого перепуга появился вопрос доступа, все файлы и папки принадлежат апачу и туда ничего не пишется, только читается... еще раз перепроверил и на всякий случай задал всем папкам и файлам в папке /forms и ниже chmod -R 775, но ошибка доступа не исчезла
@romach ... Спасибо большое за практическую помощь, я пробовал аналогичную конструкцию Код (Text): json_encode($array) , но безуспешно пытался вставить её с помощью echo, как советовали. Считаем вопрос закрытым, дальше буду разбираться с правами доступа. Надеюсь, кому-нибудь еще тоже пригодится это решение
@Pumbaa без кавычек надо: Код (Text): source: <?= json_encode($array) ?> я просто не могу отредактировать то сообщение.
я очень ответственный и честный человек, и абсолютно ни от кого не зависимый, поэтому имею привычку говорить то что вижу... если неправ, скажу, что неправ, не промолчу и буду тихо ненавидеть... а если молодец, всегда это скажу, тоже не промолчу... но если мне хамят, имею привычку бить мокрыми трусами по лицу, и я не злопамятный... злая память разрушает психику того кто злится и не выплёскивает эти эмоции, а в моём возрасте надо уже беречь себя ... у меня дети вашего возраста
парни, просто не надо демонстрировать своё превосходство ни в чём, вы же не знаете с кем на самом деле вы разговариваете... будьте сдержанней и терпимей к людям, которые сегодня В ПРОГРАММИРОВАНИИ знают меньше вас, может вы в других вопросах им до коленок не достаёте... как говорил кот Леопольд... давайте жить дружно