Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Генерация формы
Форумы портала PHP.SU » » Вопросы новичков » Генерация формы

Страниц (1): [1]
 

1. etoYA - 04 Июля, 2015 - 18:26:06 - перейти к сообщению
Например есть ссылки, при клике на которые отправляется AJAX запроc, сервер возвращает JSON строку например:

PHP:
скопировать код в буфер обмена
  1.  
  2.         0 => array('id' => 12, 'title' => 'smth #1', 'data' => 20),
  3.         1 => array('id' => 33, 'title' => 'smth #2', 'data' => 30),
  4.         2 => array('id' => 14, 'title' => 'smth #3', 'data' => 40),
  5. ));
  6.  


из этих строк будет генерироваться
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <select>
  3.      <option value="12" data-smth="20">smth #1</option>
  4.      <option value="33" data-smth="30">smth #2</option>
  5.      <option value="14" data-smth="40">smth #3</option>
  6. </select>
  7.  


Где лучше генерировать это поле? На сервере (сразу генерировать всю форму), либо вернуть JSON и сгенерировать на JS? Меняется лишь кол-во и содержимое option.

p.s Понятия не имею к какому разделу это отнести, поэтому написал сюда;)
2. DelphinPRO - 04 Июля, 2015 - 22:45:25 - перейти к сообщению
etoYA пишет:
Где лучше генерировать это поле?


Нап клиенте, конечно. От сервера получаем только чистые данные.
3. DeertOff - 04 Июля, 2015 - 22:50:53 - перейти к сообщению
В стандартном раскладе лучше делать на стороне клиента, при условии если вы не нацелены сверх бюджетные смартфоны и на слабо производительное железо.

Если у вас id уникальный ключ то его гетом на сервер а он вам только свежачёк экономим трафик и время...
4. etoYA - 04 Июля, 2015 - 22:53:21 - перейти к сообщению
DelphinPRO, я про подобного рода генерацию на сервере

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require_once('../../core/Server.php');
  4. $data = Server::getServers($_GET['project_id']);
  5.  
  6. ?>
  7. <form name="order" class="form">
  8.         <select name="server">
  9.                 <option value="0">Выберите сервер</option>
  10.                 <?PHP for ($i = 0; $i < sizeof($data); $i++): ?>
  11.                 <option value="<?PHP echo $data[$i]['id'];?>" data-val="<?PHP echo $data[$i]['data'];?>"><?PHP echo $data[$i]['title'];?></option>
  12.                 <?PHP endfor; ?>
  13.         </select>
  14. </form>
  15.  
5. DelphinPRO - 04 Июля, 2015 - 22:57:23 - перейти к сообщению
etoYA ну и?
если это ответ на ajax запрос, то там нафиг не нужна разметка. только данные. Шаблонизатор на клиенте (или тупо скриптом без шаблонизатора) сам сгенерит разметку и вставит данные.
6. etoYA - 05 Июля, 2015 - 00:04:07 - перейти к сообщению
DelphinPRO, ajax запрос отправляет данные в файл, в файле вызывается функция с этими параметрами и на основе этих параметров строится файл (ответ html код).

Либо можно сделать один шаблон (подключили и забыли), а при ajax запросе отправляем параметры и в ответ получаем json и уже javascript'ом корректируем шаблон.

 

Powered by ExBB FM 1.0 RC1