18.05.2016, 15:51
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
NeilDaniels,
Сообщение от NeilDaniels
|
Как там принять полученные значения??????????? Вот ни разу не видел примера, где принятые данные разбираются именно в #receiv.
|
В #receiv данные и не разбираются - туда размещаются разобранные данные
А разбираются они в
Сообщение от laimas
|
1 $.post('transmission.php', {'id' : id}, function(data){
2 if(data) $("#receiv").text(data); //$("#receiv").text(data); так конечно нельзя, подразумевается, что будет сформирован html из массива, и он будет вставляться
3 else //иначе произошла ошибка
4 }, 'json');
|
в строчках между первой и последней
|
|
18.05.2016, 15:52
|
Аспирант
|
|
Регистрация: 18.05.2016
Сообщений: 35
|
|
laimas,
1. ### Функция transmission.php, которая по полученному id делает выборку в таблице БД, и формирует набор данных из этого же id и данных из строки таблицы, и возвращает на клиент. Вообще-то об этом выше написал.
2. Полученные от transmission.php данные должны быть приняты в блоке #receiv, он же блок модального окна, данные рассовываются по полям input (это окно для редактирования строки таблицы БД).
Что ещё непонятного????????????????????????
|
|
18.05.2016, 15:54
|
Аспирант
|
|
Регистрация: 18.05.2016
Сообщений: 35
|
|
Dilettante_Pro,
а как из этого
Цитата:
|
1 $.post('transmission.php', {'id' : id}, function(data){
2 if(data) $("#receiv").text(data); //$("#receiv").text(data); так конечно нельзя, подразумевается, что будет сформирован html из массива, и он будет вставляться
3 else //иначе произошла ошибка
4 }, 'json');
|
данные передать в #receiv? Они же за пределами скрипта уже не видны.
|
|
18.05.2016, 16:06
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от NeilDaniels
|
Функция transmission.php
|
transmission.php - это не функция, а файл серверного скрипта, к которому будет обращаться клиент, а вот в нем уже могут быть или не быть функции.
Вы написали три строки из этого файла и пойми попробуй чего там в нем делается. Могу только заметить, что вызывать функцию (пусть в этом файле она вызывается), в которой проверяется вот это:
if (isset($_POST['id']))
это мягко говоря не прилично, логичнее вызывать функцию, если таковое установлено.
Я не маг, я не могу догадаться как и что вы делаете, что вам конкретно надо, я могу лишь написать тезисно. Есть два способа отдать клиенту:
1) Формируем из данных полученных из базы например, таблицу обрамленную формой, которая содержит ее поля. Этот код отдаем клиенту, который вставляет его как HTML в нужное место.
2) Кодируем в JSON данные из базы и отдаем их клиенту. Клиент из полученного массива/объекта (о разнице читайте выше) формирует html код таблицы обрамленной формой с ее полями и вставляет в нужное место.
Что ещё непонятного????????????????????????
Я что должен перед вами распинаться? Либо вы конкретно поясняете что отдаете клиенту и показываете эти данные, описываете что хотите получить, либо думайте сами. Я ведь тоже не собираюсь ликбезом заниматься.
|
|
18.05.2016, 16:13
|
Аспирант
|
|
Регистрация: 18.05.2016
Сообщений: 35
|
|
Сообщение от laimas
|
transmission.php - это не функция, а файл серверного скрипта, к которому будет обращаться клиент, а вот в нем уже могут быть или не быть функции.
Вы написали три строки из этого файла и пойми попробуй чего там в нем делается. Могу только заметить, что вызывать функцию (пусть в этом файле она вызывается), в которой проверяется вот это:
if (isset($_POST['id']))
это мягко говоря не прилично, логичнее вызывать функцию, если таковое установлено.
1) Формируем из данных полученных из базы например, таблицу обрамленную формой, которая содержит ее поля. Этот код отдаем клиенту, который вставляет его как HTML в нужное место.
2) Кодируем в JSON данные из базы и отдаем их клиенту. Клиент из полученного массива/объекта (о разнице читайте выше) формирует html код таблицы обрамленной формой с ее полями и вставляет в нужное место.
|
1. Что в этом неприличного? Из-за недейственности или того, что так просто непринято кодить?
2. Почему именно так? Если, скажем, несколько разных таблиц (разное количество столбцов и т.д.), то что, для каждого вида таблицы писать свой серверный обработчик - построитель таблицы?
Последний раз редактировалось NeilDaniels, 18.05.2016 в 16:27.
|
|
18.05.2016, 16:15
|
Аспирант
|
|
Регистрация: 18.05.2016
Сообщений: 35
|
|
В общем, всем спасибо, тему можно даже удалить, ибо к общему согласию по моей тупости не придём.
|
|
18.05.2016, 16:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от NeilDaniels
|
Что в этом неприличного? Из-за недейственности или того, что так просто непринято кодить?
|
Пишется вообще-то так
if(isset($_POST['name']) && (int)$_POST['name']) {
//выполняем код
}
ибо если вам прислали туфту левую, то зачем же попусту делать запрос к базе, явно зная, что он ничего не вернет? Причем isset($_POST['name']) можно и опустить, если блокировать вывод предупреждений и понимать суть происходящего.
Сообщение от NeilDaniels
|
Почему именно так?
|
Потому, что случай 2), это возврат клиенту на его запрос "сырых данных", массива, из которого клиент сам построит необходимый html-код, а массив данных нельзя передавать по HTTP как он есть, поэтому и JSON, хотя есть и другие форматы. А если вас это не устраивает, то стройте его на сервере и отдавайте клиенту готовое. Но не я же задавал вопрос о массиве, а вы.
Сообщение от NeilDaniels
|
Если, скажем, несколько разных таблиц (разное количество столбцов и т.д.), то что, для каждого вида таблицы писать свой серверный обработчик - построитель таблицы?
|
Не обязательно, все зависит и от структуры таблиц, и если они различны, то запросы конечно будут свои, как и формы их обслуживающие. Но данные задачи можно автоматизировать на сколько это можно. А вот к какой таблице серверу обратиться, какие данные вернуть или какую уже готовую форму, сервер понимает по параметрам запроса клиента, под ожидаемые параметры и пишутся серверные скрипты обработчики.
Последний раз редактировалось laimas, 18.05.2016 в 16:49.
|
|
18.05.2016, 17:03
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от NeilDaniels
|
Dilettante_Pro,
а как из этого
данные передать в #receiv? Они же за пределами скрипта уже не видны.
|
$("#receiv").text(data); - это и есть размещение присланных данных data в #receiv, только без всякой обработки, в лоб.
Если бы пришел HTML - все легло бы идеально.
Перед размещением здесь же можно сделать любую обработку данных
http://javascript.ru/blog/gordon-fre...jax-javascript
http://professorweb.ru/my/javascript...level3/3_4.php
Последний раз редактировалось Dilettante_Pro, 18.05.2016 в 17:16.
|
|
18.05.2016, 17:11
|
Аспирант
|
|
Регистрация: 18.05.2016
Сообщений: 35
|
|
Сообщение от laimas
|
Пишется вообще-то так
if(isset($_POST['name']) && (int)$_POST['name']) {
//выполняем код
}
ибо если вам прислали туфту левую, то зачем же попусту делать запрос к базе, явно зная, что он ничего не вернет?
|
Если только делать дополнительную проверку на случай того, что в id вдруг будет не целое число (хотя передаётся именно только число, и целое)?
Сообщение от laimas
|
Потому, что случай 2), это возврат клиенту на его запрос "сырых данных", массива, из которого клиент сам построит необходимый html-код, а массив данных нельзя передавать по HTTP как он есть, поэтому и JSON, хотя есть и другие форматы. А если вас это не устраивает, то стройте его на сервере и отдавайте клиенту готовое. Но не я же задавал вопрос о массиве, а вы.
|
Ну приму не массив как он есть, а данные в формате JSON. Как набор данных в формате JSON разобрать в блоке #receive на стороне клиента? Если данные на стороне клиента доступны только в скрипте, вызвавшем функцию на стороне сервера. Или это не так?
Насчёт запроса и форм согласен, не сообразил сразу - на таблицу с данными на стороне клиента своя таблица в БД, и запрос-то будет отличаться. Но сформировать таблицу серверным скриптом, передать её до клиента, где JS (?) формирует эту же таблицу, - а не закапризничает ли функционал вывода модального окна, где должна быть таблица (+ кнопка, по нажатию на которую пойдёт запрос на обновление строки в таблице БД)? Не проще ли на клиенте принять данные и сформировать в таблицу в модальном окне?
|
|
18.05.2016, 17:16
|
Аспирант
|
|
Регистрация: 18.05.2016
Сообщений: 35
|
|
Сообщение от Dilettante_Pro
|
$("#receiv").text(data); - это и есть размещение присланных данных data в #receiv, только без всякой обработки, в лоб.
Если бы пришел HTML - все легло бы идеально.
Перед размещением здесь же можно сделать любую обработку данных
http://javascript.ru/blog/gordon-fre...jax-javascript
|
Опять 25. Поправлю .text(data) на .html(data), и что далее?
Как в div'е ловить принятые данные? Мне нахер (извиняюсь за французский) принятые данные не нужны в скрипте-функции вызова серверного скрипта с передачей данных, мне они нужны в блоке div, который лежит за пределами JS функции. Сколько раз это нужно повторить, чтобы дошло?
И как принять данные в блоке div #receiv, я так нигде и не нашёл.
|
|
|
|