Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 20.05.2016, 20:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от NeilDaniels
var massiv = JSON.parse(data);
Это зачем, если методу указан тип принимаемых данных? Если он указан, то data уже будет равная объекту (массиву), и JSON.parse(data) совсем не нужен. Вам же писалось об этом.

Только datatype: json; у метода $.post, это ошибка, ибо объект, это {}. Пишите просто в кавычках }, 'json');, и без точки с запятой после параметра, это тоже ошибка.

Вроде бы и ссылку давал почитать, а пишите такую отсебятину, что ...
Ответить с цитированием
  #32 (permalink)  
Старый 20.05.2016, 21:51
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 18.05.2016
Сообщений: 35

laimas,
data через data.переменная или data[1], data[2] разбирать? Или как. Мозг сломал....
Ответить с цитированием
  #33 (permalink)  
Старый 21.05.2016, 08:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если клиенту отдается индексный массив, то data[0], data[1], и т.д., причем ели это одномерный массив, а если многомерный, то обход циклом, в котором data[i][0], data[i][1], ... Если массив ассоциативный, то data.name, где name это имя поля sql-таблицы, или массив вложенный, то также в цикле.

Данные свои надо показывать, а то вам писали как делается не раз, а проку нет.
Ответить с цитированием
  #34 (permalink)  
Старый 21.05.2016, 12:31
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

NeilDaniels,
Дайте пример получаемых данных, и опишите внятно, что с ними надо сделать!
$.post("/transmission.php",{"id":id},function(data){
  //допустим, data = { val1: "aaa", val2: "bbb" } - объект
  for(var i in data){
     alert( data[i] ); //перебираем все элементы объекта
     $("#receiv #testdata").append( data[i] ); //вставляем в блок
  }
  //или для конкретных ключей:
  var a = data['val1']; 
  var b = data['val2']; 
  alert (a+" , "+ b)
},"json");

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

Alex_63, по двойному клику на строке таблицы серверному php скрипту передаётся id (номер по порядку, он ключ таблицы базы данных). Скрипт по id из нужной строки получает данные из таблицы, формирует массив, возвращает набор данных вызвавшему JS скрипту.
Возвращаемые данные - тот же id, + 11-значное число (номер накладной), 2 адреса (отправителя и получателя), описание товара, и 4-5 чисел (объём/масса груза).
Вернуть их надо в виде массива.
В $.post же массив разобрать, и передать за пределы скрипта. Из этих данных заполняется форма редактирования накладной.

Цитата:
В целом учебная задача такая.
Есть некая форма накладной, данные хранятся в таблице БД. Есть форма вывода данных из ТБД, есть форма добавления накладной.
По двойному клику на строке таблицы должна открываться форма редактирования накладной с уже заполненными полями. (Да, делаю через пятую точку, когда для заполнения полей формы делаю запрос к БД, а не заполняя поля напрямую из строки уже выведенной таблицы. По своим непонятным соображениям). По двойному клику передаю id строки на серверный скрипт, по запросу получаю данные из БД, и застрял на том, что не могу передать данные в div блок, в котором формируется форма редактирования (div блок изначально скрытый, рисуется через jqModal).
З.Ы. Так понимаю, мне этим (web, php, mysql) даже не стоит заниматься, если не могу понять, что мне надо и как это делается?

Последний раз редактировалось NeilDaniels, 21.05.2016 в 13:12.
Ответить с цитированием
  #36 (permalink)  
Старый 21.05.2016, 14:26
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

NeilDaniels,
Как-то так:
var arr = [];//назначаем переменную

(function () {
  $("...").on("click",function () {
    $.post("/transmission.php",{"id":id},function(data){
       arr = data;// переназначаем arr
    },"json");
  });

  function setHtml(){
     if(arr.length<1)return;
     var sel = $("#receiv #testdata");
     var str=""; 
     for(var i=0;i<arr.length;i++){
       var L= arr[i];
       if(i==0){str+="ID товара: "+L+"<br>";}
       if(i==1){str+="Номер: "+L+"</br>";}
       if(i==2){str+="Адрес отправителя: "+L+"<br>";}
       if(i==3){str+="Адрес Получателя: "+L+"<br>";}
       if(i==4){str+="Описание: "+L+"<br>";}
       //ну и так далее ...

     }
     sel.html(str);
  };

  //по какому-то событию вызываем функцию setHtml(), чтобы заполнить div данными

})();

Последний раз редактировалось Alex_63, 21.05.2016 в 14:29.
Ответить с цитированием
  #37 (permalink)  
Старый 21.05.2016, 15:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от NeilDaniels
Возвращаемые данные - тот же id, + 11-значное число (номер накладной), 2 адреса (отправителя и получателя), описание товара, и 4-5 чисел (объём/масса груза).
Зачем гадать всем? Перед операцией выдачи данных (этого массива) клиенту, прописать:

print_r($name), где $name имя массива. В отладчике будет ошибка, но в консоли можно будет увидеть ответ, в котором будет структура данных этого массива. Что давно просят - покажите свои данные, причем не обязательно весь массив, а только первый вложенный его.
Ответить с цитированием
  #38 (permalink)  
Старый 21.05.2016, 16:51
Аспирант
Отправить личное сообщение для NeilDaniels Посмотреть профиль Найти все сообщения от NeilDaniels
 
Регистрация: 18.05.2016
Сообщений: 35

Alex_63,
можно data как-то иначе разобрать? Если, скажем, массив индексный, то можно заполнить новый массив из data[1], data[2] и т.д., а затем передать этот массив в div?
Ответить с цитированием
  #39 (permalink)  
Старый 21.05.2016, 17:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вы структуру своего массива покажите в конце концов или нет?
Ответить с цитированием
  #40 (permalink)  
Старый 21.05.2016, 17:59
Аспирант
Отправить личное сообщение для Alex_63 Посмотреть профиль Найти все сообщения от Alex_63
 
Регистрация: 22.08.2015
Сообщений: 71

NeilDaniels,
1. Что значит - разобрать?
2. Нафиг формировать другой массив, когда есть уже массив с данными ?
3. В каком виде он должен вставляться в div ? Опишите, (просто строкой или как ? Чем не нравится мой Вариант ?
4. Как выше сказал laimas, - выложите пример массива!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить переменную в дочерней функции 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