Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> принять пары id - description и распарсить 
V
    Опции темы
Samotnik
Дата 7.3.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



САБЖ! 
есть код, который передается с сервера
Код

ModuleSlide sl = new ModuleSlide(cm, userId);
                    mapSettings = new HashMap<String, Object>();
                    ArrayList<ModuleDataRecord> arrC = sl.getConfigArray();
                    String mode = this.getMode(arrC);
                    mapSettings.put("mode", (mode != null) ? mode : 0);
                    mapSettings.put("files", this.getFiles(arrC));

значит mode  содержит одно значение
files   содержит 2 значения    id  =  "символы"
мне нужно принять это и распарсить, т.е.  отделить  отдельно  id  и отдельно  символы  а  =  вообще не нужно !!   Т.е.  его можно откинуть (он идет как разделитель и больше не нужен)
принимаю так
Код

if (conf) {
        for(var t in conf.files) {
            var fi = sfSystem.storage.findById(this.conf.files[t]);
            this.addFile(this.conf.files[t], fi.path, fi);
        }
        this.mode = conf.mode;
    } 

Но естесснно  не  работает, т.к.   не отсортированно  от  знака  =   щас все в куче !  
PM MAIL   Вверх
SelenIT
Дата 7.3.2008, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Samotnik @  7.3.2008,  20:23 Найти цитируемый пост)
есть код, который передается с сервера

Как он передается - в виде строки? Можно пример этой строки?

Подозреваю, что проще и удобнее всего использовать JSON-формат, но, честно говория, пока не очень понял задачу...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Sardar
Дата 7.3.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Samotnik, ты вывод сервлета дай, всё равно по твоему кусочку не ясно какой текст на клиенте получим.

Цитата(Samotnik @  7.3.2008,  19:23 Найти цитируемый пост)
Но естесснно  не  работает, т.к.   не отсортированно  от  знака  =   щас все в куче !   

Распиши точно (посимвольно) что в conf лежит. От  '=' можно избавиться простым строка.split(/\s*=\s*/) - массив из частей до и после =


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Samotnik
Дата 10.3.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Sardar,  
Вот иак вот я  забиваю в базу
Код

JSONArray a = js.getJSONArray("files");
                    for (int j = 0; j < a.length(); j++) {
                          JSONObject obj = a.getJSONObject(j);
                          String sFid = obj.getString("fileID");
                          String sDesc = obj.getString("description");
                          dao.addModuleDataRecord(moduleId, "file",  sFid + "=" + sDesc);
                    }

Цитата(Sardar @  7.3.2008,  21:48 Найти цитируемый пост)
Распиши точно (посимвольно) что в conf лежит.

Ну, к примеру :
21=Hello
Вот...   21   мне нужно отдельно взять, а  Hello   отдельно, и записать  куда нить,  а = идет просто как разделитель !! 
Теперь понятненько ??
 
PM MAIL   Вверх
Samotnik
Дата 10.3.2008, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Ну так че, никто не знает, как  прочиатать JSON   пришедший в файл .js  с сервера ?? 
smile
PM MAIL   Вверх
Sardar
Дата 10.3.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Samotnik @  10.3.2008,  17:10 Найти цитируемый пост)
Вот...   21   мне нужно отдельно взять, а  Hello   отдельно, и записать  куда нить,  а = идет просто как разделитель !! 
Теперь понятненько ??

Я тебе уже ответил:
Код
var ar = "21=hello".split(/\s*=\s*/));
alert(ar[0]); //21
alert(ar[1]);//hello



А теперь несколько истин:
  • JavaScript != Java
  • клиентской стороне абсолютно по барабану что используется на сервере
  • большинство народа здесь обитающего пишет на PHP, реже Perl/Python/Ruby, ещё реже Java
  • под Java есть масса фреймворков и не все они используются повсеместно
  • под каждый фреймворк есть масса расширений и они далеко не всеми используются
Теперь подумай какой смысл давать Java код, если всё равно никто не будет его собирать, что бы запустить (всё таки процедура не в один клик ;-) )? Почему бы тупо не открыть исходники страницы в браузере и не запостить сюда? Ещё лучше дать ссылку, тогда можно подебажить ajax'овые вещи.

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

Добавлено через 1 минуту и 12 секунд
Цитата(Samotnik @  10.3.2008,  17:42 Найти цитируемый пост)
Ну так че, никто не знает, как  прочиатать JSON   пришедший в файл .js  с сервера ?? 

Код
var json - тут твой JSON
var data = eval(json); //тут получили все значения



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Samotnik
Дата 10.3.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Цитата(Sardar @  10.3.2008,  18:45 Найти цитируемый пост)
 выкладывай ссылку на страницу

а как  это сделать ??   она  же не в  нете, а  локально на моей машине..  smile 
Цитата(Sardar @  10.3.2008,  18:45 Найти цитируемый пост)
Либо код страницы

вот    пажалста :
Код

com_prototype.init = function(conf) {
    var _this = this;
    var w = this.parentNode.offsetWidth;
    var h = this.parentNode.offsetHeight;
    this.listW = Math.max(0, w - 20);
    var html = "<table style='width:" + w + "px;height:" + h + "px;border:0px solid;' cellspacing='0' cellpadding='0'>" +
               "<tr>" +
                    "<td align='left' colspan='2'>" +
                         "<div class='sf_input' style='width:" + w + "px;height:" + Math.max(h - 35, 0) + "px;overflow-x:hidden;overflow-y:scroll;'>" +
                         "<table style='width:"+ (w - 20) +"px' cellspacing='0' cellpadding='0'></table>" +
                      "</div>"+
                    "</td>" +
               "</tr>" +
               "<tr style='height:30px;'>" +
                    "<td> Description </td>" +
                    "<td style='width:100%'><input type=\'text\' readonly=\"readonly\"/></td>" +
               "</tr>" +
               "</table>";

     this.conf = conf;
     this.parentNode.innerHTML = html;

     this.description = this.parentNode.getElementsByTagName('input')[0];
     this.elements = this.parentNode.childNodes[0].rows[0].cells[0].childNodes[0].childNodes[0];
     this.elements.currentRow = null;
     this.description.onkeyup = function () {
_this.elements.currentRow.cells[0].childNodes[0].rows[0].cells[1].childNodes[0].rows[3].cells[0].innerHTML = this.value;
     _this.elements.currentRow.description = this.value;
    }
    if (conf) {  
//  Вот  тут вся фишка,  вот таким образом я  принимал одно  значение, которою сюда приходило, и все работало замечательно,  а теперь в этом месте кода, нужно принять два значения, разделенных  символом "="
        for(var t in conf.files) {
            var fi = sfSystem.storage.findById(this.conf.files[t]);
            this.addFile(this.conf.files[t], fi.path, fi);
        }
        this.mode = conf.mode;
    }
}

вот таким образом, я  беру эти значения и передаю на сервер   :
Код

com_prototype.getFiles = function() {

        var elements = this.parentNode.childNodes[0].rows[0].cells[0].childNodes[0].childNodes[0];
        var file = [];
        for (var i = 0 ; i < elements.rows.length; i++){
            file[i] = {'fileID':elements.rows[i].fileId, 'description':elements.rows[i].description, 'mode':1};
        }
        return file;
}

PM MAIL   Вверх
Samotnik
Дата 12.3.2008, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 3
Всего: 191



Окей,   давайте  забудем про все!  
И заново!
Мне  на клиент (js)   приходит  результат  с сервера.   Мне  этот результат надо взять и разделить,   затем передать в другую функцию, а она  этот  результат  вставит куда  надо (в табличку)
вот тут  
conf.files
лежат значения 
12=sdfg,34=sdfg,34=asdf
мне нужно взять только цифры и слова!   т.е.   запятые и равно мне не нужны!!  
Вариант
Код

 var ar = conf.files.split(/\s*=\s*/);
            alert(ar[0]); 
            alert(ar[1]);

не работает !!!   
Еще есть  какие нить  мысли по этому поводу ?

Это сообщение отредактировал(а) Samotnik - 12.3.2008, 20:37
PM MAIL   Вверх
ksnk
Дата 12.3.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(Samotnik @  12.3.2008,  20:31 Найти цитируемый пост)
Еще есть  какие нить  мысли по этому поводу ?

Код

var reg=/(\w*)=(\w*)/g,
      s="12=sdfg,34=sdfg,34=asdf";
while (reg.exec(s))
  alert([RegExp.$1,RegExp.$2]);



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Sardar
Дата 12.3.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Код
var ret = {};
var s="12=sdfg,34=sdfg,35=asdf";
s.replace(/([^=,]+)=([^,]*)/g, function(w, k, v) {
    ret[k] = v;
    return w;
});

alert(ret.toSource());



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2207 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.