Задать вопрос
  • Как при выводе элементов в select2 добавить данные в option?

    Diversia
    @Diversia Автор вопроса
    Решение оказалось простым:
    function formatState (state) {
    		if (!state.id) { 
    			return state.text; 
    		}
    	
    		var $state = $(
    			'<span>' + state.text + ' <small>(' + state.status + ')</small></span>'
    		);
    		return $state;
    	};
    
    	$('.itemPerson').select2({
    		width: '100%',
    		placeholder: 'Имя персоны',
    		language: "ru",
    		theme: "bootstrap",
    		allowClear: true,
    		//tags: true,
    		minimumInputLength: 3,
    		//closeOnSelect: false,
    		tokenSeparators: [',',';'],
    
    		ajax: {
    			url: "personList.php?token=123",
    			dataType: 'json',
    			delay: 500,
    			data: function (params, page) {
    				return {
    					q: params.term,
    				};
    			},
    			processResults: function (data) {
    				return {
    					results: data
    				};
    			},
    			cache: true
    		},
    
    		templateResult: formatState,
    		templateSelection: formatState
    	});


    PHP:
    $json[] = ['id' => $arFields['ID'], 'text' => $arFields['NAME'], 'status' => $status];
    Ответ написан
    Комментировать
  • Как убрать совпадения в массиве php?

    Diversia
    @Diversia Автор вопроса
    foreach ($array2 as $key => $v)
    {
      foreach ($array1 as $f)
      {
        if ($f['name'] == $v['name'])
        {
          print $f['name']." - удален<br>"; 
          unset($array2[$key]);
        }
      }
    }
    Ответ написан
    Комментировать
  • Как правильно сформировать данные с формы, где есть массив?

    Diversia
    @Diversia Автор вопроса
    Добавил в каждое поле класс и изменил имена полей. Получилось как-то не красиво, но работает:
    var ni = 1;
    	$('#addPerson').click(function() {
    		var newVideoItem = $('#original-person-item').clone();
    		newVideoItem.find('.control-wrap').each(function(index) {
    		var newSelectpicker = $(this).find(".selectpicker");
    		newSelectpicker.prop('name', 'actorsOther['+ ni + '][profession][]');
    		var personName = $(this).find(".personName");
    		personName.prop('name', 'actorsOther['+ ni + '][name]');
    		var personNameEng = $(this).find(".personNameEng");
    		personNameEng.prop('name', 'actorsOther['+ ni + '][nameEng]');
    		var personNameOrig = $(this).find(".personNameOrig");
    		personNameOrig.prop('name', 'actorsOther['+ ni + '][nameOrig]');
    
    			if (newSelectpicker.length) {
    				$(this).html(newSelectpicker)
    				newSelectpicker.selectpicker();
    			}
    		});
    		newVideoItem.appendTo(".person-list");
    		ni = ni + 1;
    	});


    Так поля нумеруются.
    Ответ написан
  • Как получить имя домена?

    Diversia
    @Diversia Автор вопроса
    function ExtractDomain($Host, $Level = 2, $IgnoreWWW = false) {
        $Parts = explode(".", $Host);
        if($IgnoreWWW and $Parts[0] == 'www') unset($Parts[0]);
        $Parts = array_slice($Parts, -$Level);
        return implode(".", $Parts);
    }
    Ответ написан
    Комментировать
  • Как подсчитать точное кол-во смс?

    Diversia
    @Diversia Автор вопроса
    Сделал так:
    function messagePart($message)
    {
    	$smsCountSym = strlen($message);
    	$arChars  = array('[', ']', '{', '}', '|', '^', '~', '€', '№');
    
    	foreach($arChars as $query)
    	{
    		if (strpos($message, $query) !== false) {$chars = true;}
    	}
    
    	if (preg_match('/[А-Яа-яёЁ]/iu', $message) || $chars == true)
    	{
    	  if ($smsCountSym <= 70)
    	  {
    		$smsPart = 1;
    	  }
    	  else
    	  {
    		$smsPart = ceil($smsCountSym / 67);
    	  }
    	}
    	else
    	{
    	  if ($smsCountSym <= 160)
    	  {
    		$smsPart = 1;
    	  }
    	  else
    	  {
    		$smsPart = ceil($smsCountSym / 153);
    	  }
    	}
    	return $smsPart;
    }

    Что скажите?
    Ответ написан
    Комментировать
  • Как в Magnific Popup автоматически запустить окно после загрузки страницы?

    Diversia
    @Diversia Автор вопроса
    Не работает. Делаю так:
    <div id="text-popup" class="white-popup mfp-hide">
                    <div>
                    <p class="title">Внимание!</p>...
                  </div>
              </div>


    <script>
      $(document).ready(function() {
    		$('#text-popup').magnificPopup.open({
    			type: 'inline'
    		});
      });
    </script>
    Ответ написан