Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 25.04.2015, 01:29
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Помогите вывести масив
Приходит:
{"title":"что то","content":"контент","menu":"меню"}

Надо вывести через цикл:
$(data['ключ']).html(data['значение..']);
Ответить с цитированием
  #32 (permalink)  
Старый 25.04.2015, 06:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

И что революционного в стандартном для jQ в вашем решении? Проверка пустых полей? Так зачем она да еще с placeholder, если есть атрибут required?

Массив как foreach в jQ, это метод each.
Ответить с цитированием
  #33 (permalink)  
Старый 25.04.2015, 09:43
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Сообщение от laimas Посмотреть сообщение
И что революционного в стандартном для jQ в вашем решении? Проверка пустых полей? Так зачем она да еще с placeholder, если есть атрибут required?

Массив как foreach в jQ, это метод each.
Вы меня непоняли...
Страница с динамическим контентом..При смене контента не меняется title...
Я просто хочу с сервера отправлять массив данных..
Например такой :
{"#content":"сам контент","#title":"титл страницы" и т.д...}

Он приходит и чтоб не подменять так:
$(#content).html(data['content']);
$(#title).html(data['title']);

Вывести все замены на странице циклом...
А про революцию никто и не говорит...
Просто ненашел для меня понятный пример работы с циклами...
Напомню что js только начал изучать...знаю unity js но он очень отличается..знаю C#
Пробовал выводить как в них но у меня ничего не получается..Поэтому прошу помоч..
Ответить с цитированием
  #34 (permalink)  
Старый 25.04.2015, 09:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Вопрос "вывести через цикл", и если each, это "я не понял", значит не понял.
Ответить с цитированием
  #35 (permalink)  
Старый 25.04.2015, 10:04
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Спасибо !!! Можно закрыть тему а я пошел копать в сторону each
Ответить с цитированием
  #36 (permalink)  
Старый 25.04.2015, 10:36
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Может кому пригодится.
Замена контента титла и что угодно...
$('#content').on('submit','#ajaxform',function(){
               var form = $(this);
               var error = false;
               form.find('input, textarea').each( function(){
                  if ($(this).val() == '') {
                     alert('Заполните поле "'+$(this).attr('placeholder')+'"!');
                     error = true;
                  }
               });
               if(!error){
                  var data = form.serialize();
                  $.ajax({
                     type: 'POST',
                     url:  'ad.php',
                     dataType: 'json',
                     data: data,
                     beforeSend: function(data){
                        form.find('input[type="submit"]').attr('disabled', 'disabled');
                     },
                     success: function(data){
                        if(data['error']){
                           alert(data['error']);
                        }else{
                           $.each(data, function(key, val){
                              $(key).html(val);
                           });
                        }
                     },
                     error: function (xhr, ajaxOptions, thrownError){
                        alert(xhr.status);
                        alert(thrownError);
                     },
                     complete: function(data){
                        form.find('input[type="submit"]').prop('disabled', false);
                     }
                  });
               }
                return false;
            });

Передаем массив..
$json['#content'] = 'OK Content !!!';
          $json['#titl'] = 'title ok';

На главной странице..
<title id="title"></title>
<body>
<div id="content"></div>
</body>
Ответить с цитированием
  #37 (permalink)  
Старый 26.04.2015, 10:42
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Еще вопросик..
Вот форма
<form method="post" name="cr-us" action="?mod=users&opt=create-user" id="ajaxform"> <br />
 <input type="text" size="32" maxlength="36" name="name" placeholder="Ваше имя" val=""><br />
 <input type="text" size="32" maxlength="36" name="email" placeholder="Ваш email" val=""><br />
 <input type="text" size="32" maxlength="36" name="subject" placeholder="Тема" val=""> <br />
 <textarea cols="25" rows="10" name="message" placeholder="Сообщение.." val=""></textarea> <br />
 <input type="submit" name="cr-user" id="cr-user" value="GO GO GO"/>
</form>

Выше упамянутым скриптом отправляется пост..Все приходит кроме то что в субмите..На стороне сервера мне надо както индифицировать приходящие данные..чтоб знать какой модуль будет обробатывать..Например без js в посте приходит name="cr-user" из submita и в php запускается модуль с именем cr-user..Через js не приходит и как быть?
Ответить с цитированием
  #38 (permalink)  
Старый 26.04.2015, 13:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Дело в том, что jQ не помещает кнопки отправки формы, а также поля типа file в результат методов serialize(), serializeArray().
Можно добавить самостоятельно кнопку:
data: $(this).serialize()+'&cr-user='+что-то вразумительное //ибо GO GO GO, это не лучшее для инициализации

Можно и скрытым полем передавать признак той или иной формы. А если выбросить все эти name="email", и работать по случайному ключу, который формирует и хранит сервер, то этот ключ и будет служить идентификатором и полей, и источника (формы).
Ответить с цитированием
  #39 (permalink)  
Старый 26.04.2015, 16:56
Аспирант
Отправить личное сообщение для tiundv Посмотреть профиль Найти все сообщения от tiundv
 
Регистрация: 22.04.2015
Сообщений: 32

Сообщение от laimas Посмотреть сообщение
Дело в том, что jQ не помещает кнопки отправки формы, а также поля типа file в результат методов serialize(), serializeArray().
Можно добавить самостоятельно кнопку:
data: $(this).serialize()+'&cr-user='+что-то вразумительное //ибо GO GO GO, это не лучшее для инициализации

Можно и скрытым полем передавать признак той или иной формы. А если выбросить все эти name="email", и работать по случайному ключу, который формирует и хранит сервер, то этот ключ и будет служить идентификатором и полей, и источника (формы).
Подскажи пожайлуста где копать про ключь? А то вразумительного ничего не нашел..Можно короткий пример.
Что за ключь я знаю а вот как им пользоваться нет..
Ответить с цитированием
  #40 (permalink)  
Старый 26.04.2015, 18:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

name, email, subject, ... это и есть ключи массива, под которыми значения соответствующих полей формы и будут переданы на север. Говоря о ключе, я имел ввиду не использовать таких явных имен у полей формы как name, email, pass и т.д.

Как бы работал бот изучая вашу страницу - уж точно бы нашел эти имена и понял, что они собой представляют. А есть еще и autocomplete, о котором вы может даже и не подозреваете, а это "удобство" может обернуться и сложностями.

Сервер не может принять одновременно две формы. Если клиент имеет на страницах не более одной формы, то все упрощается.

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

Например, имена ваших полей выглядели бы так:
<form method="post" name="cr-us" action="?mod=users&opt=create-user" id="ajaxform"> <br />
 <input type="text" size="32" maxlength="36" name="612a15ca20bb91356d9433c9195d4d5f[0]" placeholder="Ваше имя" val=""><br />
 <input type="text" size="32" maxlength="36" name="612a15ca20bb91356d9433c9195d4d5f[1]" placeholder="Ваш email" val=""><br />
 <input type="text" size="32" maxlength="36" name="612a15ca20bb91356d9433c9195d4d5f[2]" placeholder="Тема" val=""> <br />
 <textarea cols="25" rows="10" name="612a15ca20bb91356d9433c9195d4d5f[3]" placeholder="Сообщение.." val=""></textarea> <br />
 <input type="submit" value="GO GO GO"/>
</form>

Если такое именование преследует скрыть истинное назначение полей формы, то тексты типа "Ваш email" добавляются посредством сценария, отказываются от разных новых типов полей ну и т.д. Хотя бот боту рознь. Но в данном случае такую форму можно принять только в течении жизни сессии (при хранении ключа в сессии), после чего такой формы для сервера просто не будет существовать. При успешном приеме данных текущий ключ также удаляется.

Сервер получая форму, по ключу узнает имя источника запроса, соответственно обрабатывая данные. Соответствие индексов полей формы именам полей SQL-таблицы хранится на сервере под именем источника запроса, как их ключом.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в создании формы Timothy Общие вопросы Javascript 3 16.04.2015 18:04
Обработка формы перед отправкой KlausKater Общие вопросы Javascript 16 24.04.2014 18:11
Проверка авторизации перед отправкой формы Hapson AJAX и COMET 1 17.03.2014 11:58
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17