Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Реально ли выводить информацию из базы Битрикса динамически?

00 голосов
4
Ситуация довольно обыденная, заполнение одного селекта данными в зависимости от выбранного пункта первого cелекта.К примеру выбираем option Селекта1 , тут же Селект2 набивается option'нами из базы CMS. 

Понимаю что всё это делается не за 5 минут, поэтому и хочу разобраться стоит ли пытаться всё делать толково, валидно или заделать всё от топора, лишь бы работало.

Подскажите пожалуйста. Есть два вопроса, реально ли? Если да, то может быть есть какие-нибудь примеры, источники, подсказки? 
спросил 03 Янв, 14 от Jugoar (480 баллов)

4 Ответы

00 голосов
я бы делал от топора, лишь бы работало. Сделайте отдельный файл с выборкой данных, который запрашивается через AJAX, данные вставляйте в select и все дела.
ответил 05 Апр, 14 от HolyRage (280 баллов)
00 голосов
Цитата
Александр Остроумов пишет:
я бы делал от топора, лишь бы работало. Сделайте отдельный файл с выборкой данных, который запрашивается через AJAX, данные вставляйте в select и все дела.
Пришел к тупику. Не пойму как вывести массив и или заполнить его в json_encode( адекватными значениями.

В компоненте bitrix.catalog.section.list в шаблоне есть код такого вида:
Код
...      
  <!-- Вывод марок -->      
    <select size="1" name="marka" id="parts-manufacturer" onchange="loadCity(this);">
        <option selected="selected" value="marNone">Выбирите марку</option>
        
   <? foreach($arResult["SECTIONS"] as $cell=>$arMarkSect):
        if($arMarkSect["DEPTH_LEVEL"]==1){?>
        <option id="<?=$arMarkSect["ID"]?>" value="<?=$arMarkSect["NAME"]?>">
   <?=$arMarkSect["NAME"]?>
   </option>
   <?}endforeach;?>
        
    </select> 
  
 
     <!-- Вывод моделей -->
    <select size="1" id="parts-model">
        <option selected="selected" value="modNone">Выбирите модель</option>
        <? foreach($arResult["SECTIONS"] as $cell=>$arMarkSect):
        if($arMarkSect["DEPTH_LEVEL"]==2){?>
        <option value="<?=$arMarkSect["NAME"]?>">
   <?=$arMarkSect["NAME"]?>
   </option>
   <?}endforeach;?>
        
    </select> 
 
 
//СКРИПТ c выбранным option'om и ЗАПРОСОМ ФАЙЛА ajax.php
 
 
 <script type="text/javascript">
$(document).ready(function(){

$('#parts-manufacturer').change(function(){
   id = $(this).find('option:selected').attr('id'); //передаю id выбранного optiona(id раздела верхнего уровня) в пер. id 
   $.ajax({
          url: "/ajax.php",
          type: "POST",
          data: {"id": id},
          cache: false,
          success: function(response){
              if(response == 0){
                alert("Пусто");
                
              }else{
                alert("Вышел");
              
                 alert(response);
              }
          }
       
        });
    });

});

    </script>
... 

И файл ajax.php(как вытащить через этот файл или не через этот, массив чтобы передать назад в шаблон уже сформированные данные через id option'na)

Код
 <?
 
//foreach($arResult["SECTIONS"] as $cell=>$arSections):


//endforeach;  

echo json_encode($arSections);         
            
            
alert("Вышел"smile;) и alert(response); срабатывают с непонятно какими данными
ответил 28 Июль, 14 от Jugoar (480 баллов)
00 голосов
upup
ответил 30 Ноя, 14 от Jugoar (480 баллов)
00 голосов
up
ответил 25 Март, 15 от Jugoar (480 баллов)

Похожие вопросы

0 голосов
1 ответ
спросил 03 Дек, 13 от AndryxaSt (180 баллов)
0 голосов
4 ответов
спросил 09 Март, 13 от Mageradje (660 баллов)