обработка форм

(Ответов: 4, Просмотров: 453)
  1. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    есть 1 страница на которой 2 формы:
    1 загружает файл на сервер посредством ajax, после загрузки в ответ приходит некое значение
    это значение нужно передать во 2 форму в качестве значения скрытого поля
    <input type="hidden" name="attach_id" id="attach_id" value="'.$attach_id.'" />

    то бишь как записать в value скрытого поля значение пришедшее с 1 формы.
    перезагружать страницу нельзя.

    думаю innerHTML надо использовать, только вот не соображу как..
    • 0
  2. Студент
    • Регистрация: 17.08.2010
    • Сообщений: 74
    • Репутация: 12
    js или jquery?
    вкратце :)
    1) получаем и сохраняем в переменную доступ к DOM ноду "attach_id" после загрузки дерева.
    2) делаем кастомный обработчик события для "некого значения"
    3) модифицируем удобным способом (через атрибуты или свойства)
    3.1) вешаем этот обработчик.

    innerHTML - не этих целей. Но им тоже в теории возможно пушить это некое значение. *не уверен*
    • 0
  3. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    в общем поколдовал немного, наколдовал следующее:

    это вот мой обработчик, в нем обработка всего текста приходящего в ответе целиком:
    данные просто как текст приходят.
    PHP код:
        $('form#upload_file_book').ajaxForm({
            
    beforeSend: function(){
                
    status.empty();
                var 
    percentVal '0%';
                
    bar.width(percentVal)
                
    percent.html(percentVal);
            },
            
    uploadProgress: function(eventpositiontotalpercentComplete){
                var 
    percentVal percentComplete '%';
                
    bar.width(percentVal)
                
    percent.html(percentVal);
            },
            
    complete: function(xhr){
                
    status.html(xhr.responseText); // собственно запись текста в блок на странице
            
    }
        }); 
    после колдовства получается следующее:
    теперь у меня данные приходят в виде массива, закодированного в JSON
    PHP код:
        $('form#upload_file_book').ajaxForm({
            
    beforeSend: function(){
                
    status.empty();
                var 
    percentVal '0%';
                
    bar.width(percentVal)
                
    percent.html(percentVal);
            },
            
    uploadProgress: function(eventpositiontotalpercentComplete){
                var 
    percentVal percentComplete '%';
                
    bar.width(percentVal)
                
    percent.html(percentVal);
            },
            
    complete: function(xhr){
                $(
    '.status').html(xhr.responseText); // записываем статус в 1 поле на странице, это было раньше
                
    $('#attach_id').html(xhr.responseText);  // и записываем переменную, ради которой весь сыр бор в скрытый инпут
                
    }
            }
        }); 
    после нехитрых манипуляций получаю следующее:
    PHP код:
        $('form#upload_file_book').ajaxForm({
            
    beforeSend: function(){
                
    status.empty();
                var 
    percentVal '0%';
                
    bar.width(percentVal)
                
    percent.html(percentVal);
            },
            
    uploadProgress: function(eventpositiontotalpercentComplete){
                var 
    percentVal percentComplete '%';
                
    bar.width(percentVal)
                
    percent.html(percentVal);
            },
            
    complete: function(xhr){ пытаюсь разобрать JSON строку
                
    var obj jQuery.parseJSON(xhr);
                if(
    obj.rezult=='ok'){ // тут ругается, что obj не является объектом
                
    $('.status').html(obj.status); // записываем статус в 1 поле на странице, это было раньше
                
    $('#attach_id').val(obj.attach_id);  // и записываем переменную, ради которой весь сыр бор в скрытый инпут
                
    }
            }
        }); 
    -- удалено --

    про complete нашел что это такое.
    остался вопрос вот тут:
    if(obj.rezult=='ok') // на этом месте ругается, что obj не является объектом

    Никто не ответил, значит отвечу сам
    PHP код:
    var obj jQuery.parseJSON(xhr); //сюда передаваться должен полный ответ независимо от представления данных
    // соответственно должня быть передана вся строка: xhr.responseText
    // вот так:
    var obj jQuery.parseJSON(xhr.responseText);
    // далее разбираем как обычно 
    Последний раз редактировалось cOAPerator; 22.08.2013 в 22:05.
    • 0
  4. Дипломник
    • Регистрация: 15.07.2013
    • Сообщений: 189
    • Репутация: 43
    • Webmoney BL: ?
    cOAPerator, всё верно сделали! Растете не по дням, а по часам! :) JSON весьма удобная штука, без него никуда.
    • 0
  5. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Цитата Сообщение от druzhkov Посмотреть сообщение
    всё верно сделали! Растете не по дням, а по часам!
    спасибо, очень лестно

    Цитата Сообщение от druzhkov Посмотреть сообщение
    JSON весьма удобная штука, без него никуда.
    давно его юзаю )
    Последний раз редактировалось cOAPerator; 22.08.2013 в 23:26.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Терминатор - закрытие ссылок, генератор форм смс оплаты, ежедневные выплаты
Реклама партнерских программ 25 03.02.2014 16:49
Обработка фото
Другая работа 7 10.10.2012 00:10
Программа для заполнения форм регистрации
Вопросы от новичков 15 23.06.2012 01:48
Посоветуйте программу для автоматического заполнения форм
Софт, скрипты, сервисы 14 26.11.2009 23:46
Спамилка гест и прочих форм - ****It
Софт, скрипты, сервисы 4 22.09.2009 21:42

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры