0 Пользователей и 1 Гость просматривают эту тему.
  • 44 Ответов
  • 3395 Просмотров
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Связать два списка в админке
« Ответ #30 : 19.02.2015, 00:40:32 »
 ;D
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #31 : 18.03.2015, 22:07:02 »
AlekVolsk , делал по вашему методу, все получилось но приходится выбирать даже при редактировании в связанных списках, как сделать так чтобы при редактировании отображался ранее выбранный результат?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Связать два списка в админке
« Ответ #32 : 18.03.2015, 23:05:06 »
Ну, это скорее не мой метод, а метод Istaan - он меня учил =).
Не совсем понятен ваш вопрос. Вы хотите рядом со списком отображать первоначальный результат? Рядом с которым: первым, вторым, обоими? Я бы просто создал доп.поле/поля, в которых хранил бы изначальные значения, и выводил бы их информационно, где вам необходимо.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Связать два списка в админке
« Ответ #33 : 18.03.2015, 23:31:13 »
Нет vickof хочет что бы после сохранения в базе, и открытии редактирование отобразилось в втором селекте то что было в нем выбрано )
Но по моему это вопрос настолько простой что думал автор и сам догадается на это месте сформировать список по уже готовому условию и выберет нужный элемент...
« Последнее редактирование: 18.03.2015, 23:38:50 от Istaan »
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #34 : 19.03.2015, 00:33:54 »
Istaan , нет мне нужно чтобы сохранялось не только во втором а и в первом списке, создал в XML поле с таким названием как нейм списка все равно не сохраняет
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Связать два списка в админке
« Ответ #35 : 19.03.2015, 01:41:28 »
Istaan , нет мне нужно чтобы сохранялось не только во втором а и в первом списке, создал в XML поле с таким названием как нейм списка все равно не сохраняет
код вывода списка (и я не удивлюсь если нейм списка просто name="test" вместо name="jform[test]" )
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #36 : 19.03.2015, 12:28:34 »
код в шаблоне
Код: html4strict
     <div class="control-group">
          <div class="control-label "><?php echo $this->form->getLabel('pname'); ?></div>
          <div class="controls"><?php echo $this->form->getInput('pname'); ?></div>
        </div>
        <div class="control-group">
          <div class="control-label"></div>
          <div class="controls own"><?php echo $this->form->getInput('own'); ?></div>
        </div>

код в корневом контроллере компонента
Код: php
 public function getListSites()
  {
      $options = array();
    $id = filter_input(INPUT_GET, 'p', FILTER_VALIDATE_INT);
    $valg = $_GET["sel"];
   
    $result = JFactory::getDbo()->setQuery('select `id`, `own` from `#__n_man` where `id_country`='.(int)$id)->loadObjectList();
    foreach ($result as $item)
      $options[] = JHTML::_('select.option', $item->id, $item->own);
    echo JHtml::_('select.genericlist', $options, 'jform['.$valg.']', '' );
    exit;
  }
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Связать два списка в админке
« Ответ #37 : 19.03.2015, 12:45:51 »
Имя списка в форме <?php echo $this->form->getInput('own'); ?>
имя которое получаете из AJAX в  $valg = $_GET["sel"]; что в  $valg ? какой HTML вывод? Зачем мне PHP код!
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #38 : 19.03.2015, 13:06:58 »
Имя списка в форме <?php echo $this->form->getInput('own'); ?>
имя которое получаете из AJAX в  $valg = $_GET["sel"]; что в  $valg ? какой HTML вывод? Зачем мне PHP код!
имя получаю правильное own либо perl   так как у меня 2 по 2 связанных списка и чтобы не повторяться передал еще одну переменную с названием поля
Вот код выдода на странице

Код: html4strict
            	   
             <div class="control-group">
          <div class="control-label "><label id="jform_pname-lbl" for="jform_pname" class="required">
OWn<span class="star"> *</span></label></div>
          <div class="controls pname>"><select id="jform_pname" name="jform[pname]" class="required" size="45" required aria-required="true">
<option value="1">Англия</option>
<option value="2">Франция</option>
<option value="3">Германия</option>
<option value="5">Италия</option>
<option value="6">Голландия</option>
<option value="7">Япония</option>
<option value="8">Китай</option>
<option value="9">Австрия</option>
......

</select>
</div>
        </div>
   
             <div class="control-group">
          <div class="control-label "><label id="jform_own-lbl" for="jform_own" class="required">
<span class="star"> *</span></label></div>
          <div class="controls own>"><select id="jform_own" name="jform[own]" class="required" size="45" required aria-required="true">
<option value="0">Выбор</option>

</select>
</div>
        </div>
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Связать два списка в админке
« Ответ #39 : 19.03.2015, 13:21:13 »
код который вы показали на выходе страницы не тот что AJAX отдает...
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #40 : 19.03.2015, 16:26:49 »
Код: html4strict
<select id="jformown" name="jform[own]" class="chzn-done" style="display: none;">
<option value="1">Ас2</option>
<option value="2">Ас3</option>
<option value="9">Ас4</option>
<option value="11">Ас5</option>
</select>
<div class="chzn-container chzn-container-single chzn-container-active chzn-with-drop" style="width: 220px;" title="" id="jformown_chzn">
<a class="chzn-single" tabindex="-1">
<span>Ас3</span>
<div><b></b></div>
</a>
<div class="chzn-drop"><div class="chzn-search">
<input type="text" autocomplete="off">
</div>

<ul class="chzn-results">
<li class="active-result result-selected highlighted" style="" data-option-array-index="0">Ас2</li>
<li class="active-result result-selected" style="" data-option-array-index="1">Ас3</li>
<li class="active-result" style="" data-option-array-index="2">Ас4</li>
<li class="active-result" style="" data-option-array-index="3">Ас5</li>
</ul>
</div></div>
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #41 : 19.03.2015, 21:46:51 »
Istaan, Вы об этом?
Код: html4strict
<select id="jformown" name="jform[own]" class="chzn-done" style="display: none;">
<option value="1">Ас2</option>
<option value="2">Ас3</option>
<option value="9">Ас4</option>
<option value="11">Ас5</option>
</select>
<div class="chzn-container chzn-container-single chzn-container-active chzn-with-drop" style="width: 220px;" title="" id="jformown_chzn">
<a class="chzn-single" tabindex="-1">
<span>Ас3</span>
<div><b></b></div>
</a>
<div class="chzn-drop"><div class="chzn-search">
<input type="text" autocomplete="off">
</div>

<ul class="chzn-results">
<li class="active-result result-selected highlighted" style="" data-option-array-index="0">Ас2</li>
<li class="active-result result-selected" style="" data-option-array-index="1">Ас3</li>
<li class="active-result" style="" data-option-array-index="2">Ас4</li>
<li class="active-result" style="" data-option-array-index="3">Ас5</li>
</ul>
</div></div>
*

vickof

  • Захожу иногда
  • 52
  • 0 / 0
Re: Связать два списка в админке
« Ответ #42 : 20.03.2015, 20:27:10 »
Люди неужели вы не знаете как сделать? Первый список запоминает а второй нет
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: Связать два списка в админке
« Ответ #43 : 20.03.2015, 20:43:04 »
Люди неужели вы не знаете как сделать? Первый список запоминает а второй нет
Да все тут знают, а вот вы пробовали что то делать? Где попытки банального дебагинга? Где попытки посмотреть что приходит в $data метода save? что в $_REQUEST? Где результат сохранения в базе? Нам дружно становится экстрасенсами и угадывать все это?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Связать два списка в админке
« Ответ #44 : 20.03.2015, 20:56:12 »
Как делал я. Админская часть компонента.
в XML формы :
Код: xml
    <field name="partname" type="rqpartner" label="COM_CRMT_PARTNER_NAME" readonly="true" addfieldpath="/administrator/components/com_mycomponent/models/fields" >
      <option value="0">COM_CRMT_PARTNER_NAME_NOTHING</option>
    </field>
    <field name="partsite" type="rqsite" label="COM_CRMT_SITE_NAME" readonly="true" addfieldpath="/administrator/components/com_mycomponent/models/fields" >
      <option value="0">COM_CRMT_SITE_NAME_NOTHING</option>
    </field>

поле partname:
Код: php
JFormHelper::loadFieldClass('list');

class JFormFieldRqpartner extends JFormFieldList
{
  public $type = 'rqpartner';
  protected static $options = array();

  protected function getOptions()
  {
    $hash = md5($this->element);

    if (!isset(static::$options[$hash])) {
      static::$options[$hash] = parent::getOptions();
      $options = array();
      $db = JFactory::getDbo();
      $query = $db->getQuery(true)
        ->select('p.id AS value, u.name AS text')
        ->from('#__crmt_partners AS p, #__users as u')
        ->where('u.id = p.joomid')
        ->order('u.name');
      $db->setQuery($query);
      if ($options = $db->loadObjectList())
        static::$options[$hash] = array_merge(static::$options[$hash], $options);
    }
    return static::$options[$hash];
  }
}

тип поля rqsite:
Код: php
JFormHelper::loadFieldClass('list');

class JFormFieldRqsite extends JFormFieldList
{
  public $type = 'rqsite';
  protected static $options = array();

  protected function getOptions()
  {
    $hash = md5($this->element);

    if (!isset(static::$options[$hash])) {
      static::$options[$hash] = parent::getOptions();
      $options = array();
      $db = JFactory::getDbo();
      $query = $db->getQuery(true)
        ->select('s.id AS value, s.s_url AS text')
        ->from('#__crmt_sites AS s')
        ->where('s.published=1')
        ->order('s.s_url');
      $db->setQuery($query);
      if ($options = $db->loadObjectList())
        static::$options[$hash] = array_merge(static::$options[$hash], $options);
    }
    return static::$options[$hash];
  }
}

edit.php вид формы:
Код: html4strict
<?php defined('_JEXEC') or die;

JHtml::_('bootstrap.tooltip');
JHtml::_('behavior.formvalidation');
JHtml::_('formbehavior.chosen', 'select');
$input = JFactory::getApplication()->input;
?>
<script type="text/javascript">
  Joomla.submitbutton = function (task) {
    if (task == 'request.cancel' || document.formvalidator.isValid(document.id('item-form'))) {
      Joomla.submitform(task, document.getElementById('item-form'));
    } else {
      alert('<?php echo $this->escape(JText::_('JGLOBAL_VALIDATION_FORM_FAILED')); ?>');
    }
  }
  jQuery(document).ready(function (cash) {
    $('#jform_partname').on('change', function () {
      $.get('index.php', {option:'com_mycomponent', task:'getListSites', partner:$(this).val()}, function (response) {
        response && $('.partsite').html(response);
        $('select').chosen();
      });
    });
  })
</script>
<form action="<?php echo JRoute::_('index.php?option=com_mycomponent&layout=edit&id=' . $this->form->getValue('id')); ?>" method="post" name="adminForm" id="item-form" class="form-validate" enctype="multipart/form-data">
  
  <div class="form-horizontal">
    <div class="row-fluid form-horizontal-desktop">
      <div class="span6">
        <div class="control-group">
          <div class="control-label"><?php echo $this->form->getLabel('partname'); ?></div>
          <div class="controls"><?php echo $this->form->getInput('partname'); ?></div>
        </div>
        <div class="control-group">
          <div class="control-label"><?php echo $this->form->getLabel('partsite'); ?></div>
          <div class="controls partsite"><?php echo $this->form->getInput('partsite'); ?></div>
        </div>
      </div>
    </div>
  </div>

  <input type="hidden" name="task" value="" />
  <input type="hidden" name="return" value="<?php echo $input->getCmd('return'); ?>" />
  <?php echo JHtml::_('form.token'); ?>
</form>

controller.php в корне папки компонента (корневой контроллер-стартер):
Код: php
class MycomponentController extends JControllerLegacy
{

  function display($cachable = false, $urlparams = array())
  {
    $this->default_view = 'firms';
    parent::display($cachable, $urlparams);
  }

  public function getListSites()
  {
    $options = array();
    $id = filter_input(INPUT_GET, 'partner', FILTER_VALIDATE_INT);
    $result = JFactory::getDbo()->setQuery('select `id`, `s_url` from `#__crmt_sites` where `s_partner`='.(int)$id)->loadObjectList();
    foreach ($result as $item)
      $options[] = JHTML::_('select.option', $item->id, $item->s_url);
    echo JHtml::_('select.genericlist', $options, 'jform[partsite]', '' );
    exit;
  }
  
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На js узнать в админке в списке, какие строки (записи) отмечены

Автор AlekVolsk

Ответов: 25
Просмотров: 3626
Последний ответ 29.06.2015, 22:53:42
от AlekVolsk
Как вывести данные в админке сайта?

Автор Sergeyy

Ответов: 10
Просмотров: 1469
Последний ответ 21.11.2014, 16:06:01
от Sergeyy
Список множественного выбора (создание списка, передача, запись, вывод данных) Joomlaa 3.x

Автор ninth

Ответов: 20
Просмотров: 3399
Последний ответ 11.11.2014, 13:59:39
от lesh1j
Разработка компонента: в админке в списке не работает смена состояния записи

Автор AlekVolsk

Ответов: 4
Просмотров: 1137
Последний ответ 10.11.2014, 16:23:12
от b2z
Удаление элемента из списка

Автор ShutTap

Ответов: 3
Просмотров: 1061
Последний ответ 27.08.2014, 21:11:28
от beliyadm