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. pantela - 26 Октября, 2015 - 04:29:30 - перейти к сообщению
Имеется массив напр. из 4 объектов, напр. надо сохранить значение id в input всех объектов, только последний сохраняеться, другие затеряются... Как поправить чтобы не потерялись...

CODE (javascript):
скопировать код в буфер обмена
  1. for(var i = 0; i < result.length; i++) {
  2.         var id = result[i].id;
  3.  
  4.         // Save consular id to hidden input
  5.         $('input[name=consular_id]').val(id);
  6. }


Напр. если массив больше 2 объектов, тогда сохранять через запятую (напр. 132,145,178), а если один объект, можно сохранять в простом виде (напр. 132) Закатив глазки
2. pantela - 27 Октября, 2015 - 15:38:53 - перейти к сообщению
UP просто вопрос же )) Закатив глазки
3. IllusionMH - 27 Октября, 2015 - 15:43:55 - перейти к сообщению
pantela, нифига из описания не ясно. Но видно что значение всегда перезатирается. Нафига полностью перезатирать, если нужно взять предыдущее и что-то добавить в конец.
Да и вообще лучше собрать всё в строку тут и join есть, и потом уже разок изменить.
4. pantela - 27 Октября, 2015 - 16:04:50 - перейти к сообщению
Что не ясно... Недовольство, огорчение Как-то надо сохранить из массива ID виде запятой (если их больше 1)
напр. пробую так...
Цитата:
for(var i = 0; i < result.length; i++) {
var id = result[i].id;

var str[i] = id;
var res = str[i].concat(str[i]);
}
console.log(res);
но что-то не то...
5. and_07 - 27 Октября, 2015 - 16:08:05 - перейти к сообщению
как то так
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. var ids=  $('input[name=consular_id]').val();
  4. var arr = ids.split(',');
  5. for(var i = 0; i < result.length; i++) {
  6.         var id = result[i].id;
  7.  arr.push(id)
  8.         // Save consular id to hidden input
  9.        
  10. }
  11.  
  12.  $('input[name=consular_id]').val(arr.join(','));
  13.  
6. pantela - 27 Октября, 2015 - 16:17:33 - перейти к сообщению
спс, вот только сейчас сохраняеться в таком виде ,132,136,135 и ,132, а хотелось бы 132,136,135 и 132 - т.е. когда один объект и больше одного...
7. and_07 - 27 Октября, 2015 - 16:21:19 - перейти к сообщению
ну так проверку напишите для ids
8. pantela - 27 Октября, 2015 - 16:25:41 - перейти к сообщению
Так верно?
CODE (htmlphp):
скопировать код в буфер обмена
  1.                                 if(ids){
  2.                                         var arr = ids.split(',');
  3.                                 }else
  4.                                         var arr = ids.split('');


P.S. не в тему, но почему иногда, и правильно ли для else не делать фигурные скобки?
9. and_07 - 27 Октября, 2015 - 16:27:26 - перейти к сообщению
ну как то так вроде
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var arr = (ids == '') ? [] : ids.split(',');
  3.  
10. andrewkard - 27 Октября, 2015 - 16:27:52 - перейти к сообщению
pantela пишет:
а хотелось бы 132,136,135 и 132 - т.е. когда один объект и больше одного...

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var arr = [132];
  3. console.log(arr.join(','));
  4. var arr = [132,133,134];
  5. console.log(arr.join(','));
  6.  
11. pantela - 27 Октября, 2015 - 16:36:12 - перейти к сообщению
спс, теперь стоит задача эти значения прогонять по for, и выводить текст напр. верно?
CODE (htmlphp):
скопировать код в буфер обмена
  1. var active_shape_id = $('input[name=consular_id]').val();
  2.                                         var data = active_shape_id.split(',')
  3.                                         for(var i = 0; i < data.length; i++) {
  4.                                                 console.log(data[i])
  5.                                         }


Тут теперь надо наоборот разбить это значения запятыми да...? Растерялся


P.S. Понимаю что всё можно было изначательно через JSON сделать, но боюсь всё перепутать...
12. IllusionMH - 27 Октября, 2015 - 17:12:02 - перейти к сообщению
pantela, можно и так если данные не содержат запятые. И как вы и сказали - лучше JSON если речь идет о взаимодействии с сервером
13. pantela - 27 Октября, 2015 - 17:28:47 - перейти к сообщению
взаимодействии с сервером нету, просто одна JS функция даёт ID, и второй надо передавать, вот и пришлось через hidden поле перестраивать...

На прямую передавать массив в функцию не получаеться т.к. только в определённую часть надо грузить массив.

P.S. Использую Google Map передаю массив в функцию initialize()
14. IllusionMH - 27 Октября, 2015 - 18:22:27 - перейти к сообщению
pantela, а не лучше ли разобраться и по-человеческе передавать при вызове функции, чем костылять через инпут скрытый?
Если не параметром, то хоть через общую переменную в замыкании передавать, либо использовать один из подходящих шаблонов проектирования.

 

Powered by ExBB FM 1.0 RC1