Отметить используемые у товара опции

Добрый день.
Подскажите, как мне отметить используемые у товара опции.
Вот так получаю все возможные значения опции
$options = $modx->getObject('msOption', [
  'key' => $key
]);
$prop = $options->get('properties');
foreach ($prop as $k => $v) {
    foreach ($v as $values) {
        echo "<label><input type='checkbox' name='.$key.'> $values</label>
";
    }
}
А как те опций, что есть у данного товара отметить checkbox?
Опции товара я получаю например так:
$product = $modx->getObject('msProduct', $id);
$options = $product->loadData()->get('options');
$option_key = $options[$key];
Как при выводе первых данных отметить те значения опций, что есть во втором?
Заранее спасибо!
Андрей
23 февраля 2018, 19:48
modx.pro
1 081
0

Комментарии: 4

Максим
25 февраля 2018, 10:52
0
echo '<label><input '. isset($options[$k]) ? "checked" : "" .' type="checkbox" name='.$key.'> '.$values.'</label>';
    Андрей
    25 февраля 2018, 12:53
    0
    такой код выводит только checkedcheckedchecked…

    $options = $modx->getObject('msOption', [
      'key' => $key
    ]);
    $prop = $options->get('properties');
    
    $product = $modx->getObject('msProduct', $id);
    $options = $product->loadData()->get('options');
    $option_key = $options[$key];
    
    foreach ($prop as $k => $v) {
        foreach ($v as $values) {
            echo '<label><input '. isset($options[$k]) ? "checked" : "" .' type="checkbox" name='.$key.'> '.$values.'</label>';
        }
    }
    Максим
    25 февраля 2018, 18:06
    0
    Ну может я что-то напутал! Суть то должна быть ясна.
    Берем массив со всеми опциями, пробегаемся по нему форычем и на каждой итерации проверяем наличие ключа в массиве с опциями у товара.
    P.S. Могу сделать за вас!)))
      Андрей
      02 марта 2018, 09:43
      0
      Да, это я понимаю. но у меня почему-то он выбирает весь массив опций и все чекает… А мне нужно прочекать только то, что есть в массиве $option_key, выведя при этом массив $prop. Помогите пожалуйста.
      Вот код:
      <?php
      $key = 'uslugi';
      $id = 3;
      
      $options = $modx->getObject('msOption', [
        'key' => $key
      ]);
      $prop = $options->get('properties');
      $product = $modx->getObject('msProduct', $id);
      $options = $product->loadData()->get('options');
      $option_key = $options[$key];
      
      foreach ($prop as $k => $v) {
          foreach ($v as $values) {
              print "<label><input";
      		if (isset($prop[$k])) {
      			print " checked "; 
      		}
      		print "type='checkbox' name='$k'> $values</label>";
      	    }
      }
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4