17.01.2016, 18:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Atridies
|
И, кстати, я проверял: сайт компэла - действительно не дает запрос на сервер при пересортировке.
|
Вы уверены в этом, в чем и как вы это определили?
|
|
17.01.2016, 18:26
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Вот запрос сервер при выборе параметра "Напряжение питания"
Параметры
_FV 8S-true
actCatalog filter-visible
eng SKp
fid 8S
page 1
Исходный код
fid=8S&actCatalog=filter-visible&_FV=8S-true&page=1&eng=SKp
А это маленький кусочек из json ответа сервера:
{"s":{"c":"Catalog","a":"filter-visible","t":49.796,"tl":null},"stat":"ok","filter ":"on","thead":"<thead
class=\"sorting\"><tr><td class=\"tc\"> <\/td><td class=\"tc\"><a href=\"#\" data-act-catalog=
\"filter-show\" data-fid=\"_STOCK\" class=\"filter\"><img src=\"data:image\/png;base64,iVBORw
Как видно из ответа, сервер вообще готовую html таблицу отдает.
|
|
17.01.2016, 19:21
|
Новичок на форуме
|
|
Регистрация: 15.01.2016
Сообщений: 9
|
|
Сообщение от laimas
|
Вы уверены в этом, в чем и как вы это определили?
|
Я проверял это так: грузишь страницу, запускаешь wireshark и нашимаешь -сменить выборку. Таблица меняется, а запроса - нету.
По нажатию "Источники питания" - да, грузится таблица. А если внути таблицы сделать выборку по питанию - то запроса не будет.
|
|
17.01.2016, 19:29
|
Новичок на форуме
|
|
Регистрация: 15.01.2016
Сообщений: 9
|
|
Сообщение от laimas
|
СУБД под приложение проектируют так, чтобы данные в ней были оптимизированы, в частности, если по примеру, то производителей лучше хранить в отдельной связанной таблице, как и некоторые характеристики, которые могут распределять изделия описанные в СУБД по неким классам. Тогда запрос дополнится всего лишь вложенным запросом/запросами для объединения таблиц:
|
Я знаю, что такое СУБД. И даже знаю - как запросы строятся.
Но чтобы поднять ее на хостинге - у меня займет несколько недель. Чтобы разобраться как отдавать данные - еще столько же. Нет желания разбираться в этом. Я электронщик и делаю инструмент, удобный для себя как для электронщика.
Хочу сделать его как можно быстрее по времени и менее затратно по силам.
Возможно поставить базу и настроить с js - совсем не сложно. Но это несложно для спеца. Мне сформировать гербер-файлы из альтиум - тоже очень просто, а вы будете разбираться несколько недель.
Вот поэтому я ищу путь наименее сложный и наиболее дешевый на хостинге.
Поставить на хостинге сервер, отдающий HTML - проблем не составит. Он у меня есть.
|
|
17.01.2016, 19:45
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Atridies
|
Я проверял это так: грузишь страницу, запускаешь wireshark и нашимаешь -сменить выборку.
|
Жмем F12 в браузере и контролируем сеть, и это покажет что вы глубоко заблуждаетесь, что все происходит само собой на клиенте.
Сообщение от Atridies
|
Я знаю, что такое СУБД. И даже знаю - как запросы строятся.
Но чтобы поднять ее на хостинге - у меня займет несколько недель.
|
Почему простые данные легко описать на клиенте, а вот занести их в базу, не важно какую, серверную, клиентскую ли, это неимоверные трудности? Это уже похоже на словоблудие.
Если же серьезно, то нужно описать данные, именно формат их, а уж затем вопрос как делать. Вот только смотря что за данные и что именно нужно, ибо написать на JS, которого вы не знаете, что-то, о чем тоже представление смутное, это не проще.
|
|
17.01.2016, 19:55
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Atridies
|
Мне сформировать гербер-файлы из альтиум - тоже очень просто, а вы будете разбираться несколько недель.
|
Я тоже увлекался электроникой и работал по этой специальности. Это к тому, что человеку подвластно освоение много, но при условии, если он этого захочет.
|
|
17.01.2016, 20:11
|
Новичок на форуме
|
|
Регистрация: 15.01.2016
Сообщений: 9
|
|
Почему вы меня не слышите?
Занести данные в БД - не проблема совершенно. Важнее - что надо эту БД иметь на хостинге. А еще в том, что ее надо как-то связать с js.
Это всё для меня - задача, требующая времени.
Я знаю, что человеку подвластно многое, не надо из меня делать глупца. Вопрос для меня стоит не в этом, а в том, что ВСЕ ЗНАТЬ - нереально. И есть знания, полезные для меня, а есть - не очень. У меня список на изучение - чрезвычайно большой. И там нету ни js, ни ajax. Просто потому, что в моей специальности - это не требуется.
И если у меня будет свободная минута, я ее потрачу на изучение ядра linux, чем на js. Дело не в возможности, а дело - во времени.
Но вот незадача - я столкнулся с тем, что в определенных условиях я не могу работать также эффективно, как и раньше. В частности - при разработке оборудования из отечественных микросхем. Решил сделать для себя и не только - инструментарий, повышающий эффективность.
А вы мне предлагаете - изучить ajax...
Представьте: вы в Индии в городе вдруг придавило в туалет. Вам надо сказать: "где туалет" на хинди. А вам предлагают изучить грамматику и расстановку знаков препинания на хинди....
|
|
17.01.2016, 20:35
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Atridies
|
Важнее - что надо эту БД иметь на хостинге
|
А с этим какие проблемы? Хост для вас не проблема как вы пишите, так хост чей, собственный, кроме статичных html-файлов ничего не отдающий? Ну так разве проблема взять платный хост, что в общем то недорого, который представляет и возможность базы данных, и язык серверный?
Вы ведь тоже пишите такое, что ну прямо по космическим меркам не доступно. В вашем случае, если данные совсем просты, то "поднять базу" на сервере, это добавить ее имя в панели управления хостом и завести в ней таблицу. Все, что еще надо, а тем более что нет проблем заполнить ее данными и как это делается вам известно?
А ajax запрос это вообще смешно, и учить чего-то неподъемного вас никто не заставляет, подключайте jQuery, а в используйте метод $.ajax или если удовлетворит простое, то еще проще:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(function() {
$('form').submit(function() {
$.post('url_запроса', $(this).serializeArray(), function(data) {
//data содержит ответ сервера, в данном случае ожидается json-формат, и он сразу будет преобразован в объект, из которого остается получить данные, обрамить тегами элементов таблицы и...
}, 'json')
})
});
</script>
где, $(this).serializeArray(), это параметры выбранных фильтров, собственно поля формы, которые будут отправлены для сервера как массив - имя поля как ключ => значение поля. Как делать запросы к базе вы знаете.
Эта часть вам неизвестная как раз очень проста.
|
|
14.02.2016, 01:53
|
Новичок на форуме
|
|
Регистрация: 15.01.2016
Сообщений: 9
|
|
Прошу прощения, что пропал надолго.
Я разобрал Ваш код - он генерит POST-запрос к определенной странице не сервере.
Вопрос №1. К какой странице я должен сделать запрос? У меня есть доступ по FTP к файловой системе моего сайта, есть адрес админки SQL. Имени файла БД - я не знаю.
Вопрос №2. Как и где указать SQL-запрос в приведенном Вами примере?
Например вот такой: "SELECT * FROM interface ORDER BY datarate"
Вопрос №3. Как обрамить тегами ответ?
Заранее спасибо за ответы.
|
|
14.02.2016, 09:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Atridies
|
У меня есть доступ по FTP к файловой системе моего сайта
|
И не просто доступ, а полные права, естественно, что давать доступ клиентам к FTP на хостинге своем ни в коем случае нельзя, да и отвечать на запрос клиента будет некому.
Сообщение от Atridies
|
есть адрес админки SQL.
|
То же самое, что и по FTP - это святая святых, кроме вас доступа к этому ни у кого не должно быть. Да и РМА (phpmyadmin) не является средством общения с клиентом.
Сообщение от Atridies
|
Имени файла БД - я не знаю.
|
А этого и не обязательно знать (имя базы данных задает вы при ее создании, то есть вы это знаете, а вот имена файлов таблиц нет, хотя они будут именоваться по тем же именам, что задает вы, параметры подключения к базе, логин и пароль, вам даст хост ваш), обращение к файлам производит движок базы данных, ваша задача отправлять запросы в нее. Запросы же в БД будет отправлять серверный язык посредством драйвера базы данных с которой вы работаете. Для работы с базами данных у серверного языка существуют расширения (библиотеки). Если предполагается работа с базой MySQL, то нужно учесть, что расширение MySQL начиная с РНР 5.5.0 считается устаревшим, а в старших версиях исключено вообще. Вместо оригинального расширения MySQL рекомендуется использовать либо misqli, либо PDO MySQL. При этом в основе это все та же база MySQL, но работа с ней будет через иные драйверы, которые нужно будет подключить в панели управления на хосте.
Вот к серверному скрипту (исполняемому файлу), который и должен содержать запрос к базе "SELECT * FROM interface ORDER BY datarate", и должен обращаться клиент (Ajax запрос в данном случае). Что именно за файл, а также путь к нему (страница), к которой будет обращение, это уже вам решать согласно вашим задумкам. Тут вариаций может быть много.
Сообщение от Atridies
|
Как обрамить тегами ответ?
|
Все зависит от того в каком виде сервер вернет данных клиенту. Ранее говорилось о формате JSON, и в зависимости от задачи клиент может в итоге получить данные как объекты или как массивы, а значит в каждом конкретном случае построение таблицы может производиться различными способами.
Если данные для формы и их нужно связать с полями SQL таблицы, то это будут ассоциативный массив от сервера, а значит на клиенте будет объект. Для того чтобы поместить эти данные в таблицу в элементы формы нужно обойти их в цикле (методом .each() jQuery) и помещая свойство объекта в качестве имени для поля формы, а значение свойства в свойство value поля. Нужно отметить, что если данные из базы это строки, а тем более не являются доверенными, то на сервере их нужно обязательно обработать функцией htmlspecialchars().
Как в этом случае конкретно будет выглядеть код этот я затрудняюсь сказать, ибо для этого нужно знать конкретно не только структуру данных, но и то каким образом данные этой формы предполагается обрабатывать на сервере. Не охота чего-то написать общего, а потом долго утрясать мелочи.
Если же данные нужно только отобразить на клиенте, то с сервера достаточно получить многомерный индексный массив (стоит отметить, что его же будет достаточно даже в случае, если данные не просто для отображения, но и для полей формы, но это отдельный разговор). В этом случае тоже может быть много способов построения из них таблицы на клиенте, но это будет опять таки обход их циклом.
Если нужно что-то конкретно, поясните конкретно что к чему, ну или приведите пример того что нужно получить на клиенте с пояснением.
Последний раз редактировалось laimas, 14.02.2016 в 09:25.
|
|
|
|