Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.05.2016, 15:51
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 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');
в строчках между первой и последней
Ответить с цитированием
  #12 (permalink)  
Старый 18.05.2016, 15:52
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 18.05.2016
Сообщений: 35

laimas,
1. ### Функция transmission.php, которая по полученному id делает выборку в таблице БД, и формирует набор данных из этого же id и данных из строки таблицы, и возвращает на клиент. Вообще-то об этом выше написал.
2. Полученные от transmission.php данные должны быть приняты в блоке #receiv, он же блок модального окна, данные рассовываются по полям input (это окно для редактирования строки таблицы БД).

Что ещё непонятного????????????????????????
Ответить с цитированием
  #13 (permalink)  
Старый 18.05.2016, 15:54
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 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? Они же за пределами скрипта уже не видны.
Ответить с цитированием
  #14 (permalink)  
Старый 18.05.2016, 16:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от NeilDaniels
Функция transmission.php
transmission.php - это не функция, а файл серверного скрипта, к которому будет обращаться клиент, а вот в нем уже могут быть или не быть функции.

Вы написали три строки из этого файла и пойми попробуй чего там в нем делается. Могу только заметить, что вызывать функцию (пусть в этом файле она вызывается), в которой проверяется вот это:

if (isset($_POST['id']))

это мягко говоря не прилично, логичнее вызывать функцию, если таковое установлено.

Я не маг, я не могу догадаться как и что вы делаете, что вам конкретно надо, я могу лишь написать тезисно. Есть два способа отдать клиенту:

1) Формируем из данных полученных из базы например, таблицу обрамленную формой, которая содержит ее поля. Этот код отдаем клиенту, который вставляет его как HTML в нужное место.

2) Кодируем в JSON данные из базы и отдаем их клиенту. Клиент из полученного массива/объекта (о разнице читайте выше) формирует html код таблицы обрамленной формой с ее полями и вставляет в нужное место.

Что ещё непонятного????????????????????????

Я что должен перед вами распинаться? Либо вы конкретно поясняете что отдаете клиенту и показываете эти данные, описываете что хотите получить, либо думайте сами. Я ведь тоже не собираюсь ликбезом заниматься.
Ответить с цитированием
  #15 (permalink)  
Старый 18.05.2016, 16:13
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 18.05.2016
Сообщений: 35

Сообщение от laimas Посмотреть сообщение
transmission.php - это не функция, а файл серверного скрипта, к которому будет обращаться клиент, а вот в нем уже могут быть или не быть функции.

Вы написали три строки из этого файла и пойми попробуй чего там в нем делается. Могу только заметить, что вызывать функцию (пусть в этом файле она вызывается), в которой проверяется вот это:

if (isset($_POST['id']))

это мягко говоря не прилично, логичнее вызывать функцию, если таковое установлено.

1) Формируем из данных полученных из базы например, таблицу обрамленную формой, которая содержит ее поля. Этот код отдаем клиенту, который вставляет его как HTML в нужное место.

2) Кодируем в JSON данные из базы и отдаем их клиенту. Клиент из полученного массива/объекта (о разнице читайте выше) формирует html код таблицы обрамленной формой с ее полями и вставляет в нужное место.
1. Что в этом неприличного? Из-за недейственности или того, что так просто непринято кодить?

2. Почему именно так? Если, скажем, несколько разных таблиц (разное количество столбцов и т.д.), то что, для каждого вида таблицы писать свой серверный обработчик - построитель таблицы?

Последний раз редактировалось NeilDaniels, 18.05.2016 в 16:27.
Ответить с цитированием
  #16 (permalink)  
Старый 18.05.2016, 16:15
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 18.05.2016
Сообщений: 35

В общем, всем спасибо, тему можно даже удалить, ибо к общему согласию по моей тупости не придём.
Ответить с цитированием
  #17 (permalink)  
Старый 18.05.2016, 16:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от NeilDaniels
Что в этом неприличного? Из-за недейственности или того, что так просто непринято кодить?
Пишется вообще-то так
if(isset($_POST['name']) && (int)$_POST['name']) {
    //выполняем код
}


ибо если вам прислали туфту левую, то зачем же попусту делать запрос к базе, явно зная, что он ничего не вернет? Причем isset($_POST['name']) можно и опустить, если блокировать вывод предупреждений и понимать суть происходящего.

Сообщение от NeilDaniels
Почему именно так?
Потому, что случай 2), это возврат клиенту на его запрос "сырых данных", массива, из которого клиент сам построит необходимый html-код, а массив данных нельзя передавать по HTTP как он есть, поэтому и JSON, хотя есть и другие форматы. А если вас это не устраивает, то стройте его на сервере и отдавайте клиенту готовое. Но не я же задавал вопрос о массиве, а вы.


Сообщение от NeilDaniels
Если, скажем, несколько разных таблиц (разное количество столбцов и т.д.), то что, для каждого вида таблицы писать свой серверный обработчик - построитель таблицы?

Не обязательно, все зависит и от структуры таблиц, и если они различны, то запросы конечно будут свои, как и формы их обслуживающие. Но данные задачи можно автоматизировать на сколько это можно. А вот к какой таблице серверу обратиться, какие данные вернуть или какую уже готовую форму, сервер понимает по параметрам запроса клиента, под ожидаемые параметры и пишутся серверные скрипты обработчики.

Последний раз редактировалось laimas, 18.05.2016 в 16:49.
Ответить с цитированием
  #18 (permalink)  
Старый 18.05.2016, 17:03
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 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.
Ответить с цитированием
  #19 (permalink)  
Старый 18.05.2016, 17:11
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 18.05.2016
Сообщений: 35

Сообщение от laimas
Пишется вообще-то так
if(isset($_POST['name']) && (int)$_POST['name']) {
//выполняем код
}


ибо если вам прислали туфту левую, то зачем же попусту делать запрос к базе, явно зная, что он ничего не вернет?
Если только делать дополнительную проверку на случай того, что в id вдруг будет не целое число (хотя передаётся именно только число, и целое)?

Сообщение от laimas
Потому, что случай 2), это возврат клиенту на его запрос "сырых данных", массива, из которого клиент сам построит необходимый html-код, а массив данных нельзя передавать по HTTP как он есть, поэтому и JSON, хотя есть и другие форматы. А если вас это не устраивает, то стройте его на сервере и отдавайте клиенту готовое. Но не я же задавал вопрос о массиве, а вы.
Ну приму не массив как он есть, а данные в формате JSON. Как набор данных в формате JSON разобрать в блоке #receive на стороне клиента? Если данные на стороне клиента доступны только в скрипте, вызвавшем функцию на стороне сервера. Или это не так?

Насчёт запроса и форм согласен, не сообразил сразу - на таблицу с данными на стороне клиента своя таблица в БД, и запрос-то будет отличаться. Но сформировать таблицу серверным скриптом, передать её до клиента, где JS (?) формирует эту же таблицу, - а не закапризничает ли функционал вывода модального окна, где должна быть таблица (+ кнопка, по нажатию на которую пойдёт запрос на обновление строки в таблице БД)? Не проще ли на клиенте принять данные и сформировать в таблицу в модальном окне?
Ответить с цитированием
  #20 (permalink)  
Старый 18.05.2016, 17:16
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 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, я так нигде и не нашёл.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить переменную в дочерней функции Yurik Общие вопросы Javascript 2 16.03.2012 15:44
Как получить переменную с сервера? DmitryT AJAX и COMET 2 03.08.2011 18:16
Ссылка test.php?ID=33 Как получить в переменную значение 33 из URL? Anatuz Общие вопросы Javascript 1 27.07.2010 13:32
Как получить высоту DIV, установленную автоматически YOricH Internet Explorer 4 22.07.2009 17:15
Как получить содержимое <script></script> из полученного ответа vvsh Events/DOM/Window 2 09.07.2009 20:32