@VMorello

Работа с selected в php где ошибка и как исправить?

Доброго времени суток! Помогите пожалуйста разобраться:
Вот кусочек кода из selected1:
<?php
$gateways = $db->query("SELECT * FROM bit_gateways WHERE allow_receive='1' and status='1' ORDER BY id");
  if($gateways->num_rows>0) {
while($g = $gateways->fetch_assoc()) {
if($g['default_receive'] == "1") { $sel = 'selected'; } else { $sel = ''; }
echo '<option value="'.$g[id].'" '.$sel.'>'.$g[name].' '.$g[currency].'</option>';
 }
   } else {
echo '<option>'.$lang[no_have_gateways].'</option>';
} 
?>


Что хочу сделать:
В базе данных есть несколько ID (например 10)
Отображение обозначено одной строчкой
echo '<option value="'.$g[id].'" '.$sel.'>'.$g[name].' '.$g[currency].'</option>'


Нужно сделать при выборе списка из select1 например с ID 5,6,7 поставить значение data-select-options="1,2,3,4,8,9" тогда в select2 должны отобразиться только те ID которые я указал в data-select-options=""

P.S. Просто подскажите как правильно прописать именно значение по примеру
if($g['id'] == "5"){//если id равно 5 добавляем data-select-options
                    echo '<option value="'.$g[id].'" '.$sel.' data-select-options="1,2,3,4,8,9" >'.$g[name].' '.$g[currency].'</option>'; }

или
if($g['id'] == "5") { $select= 'data-select-options="1,2,3,4,8,9"'; } else { $select= ''; }

Спасибо за ответ из соседнего вопроса. Но я не знаю как ими пользоваться.... как их применить у себя в коде. помогите пожалуйста

Подскажите как решить! Буду благодарен!

UPD.... Решение для 1 ID как добавить ещё несколько ID?
<?php $gateways = $db->query("SELECT * FROM bit_gateways WHERE allow_send='1' and status='1' ORDER BY id");
if($gateways->num_rows>0) {
while($g = $gateways->fetch_assoc()) {
if($g['default_send'] == "1") { $sel = 'selected'; } else { $sel = ''; }
if($g['id'] == "1") { $usd = 'data-select-options="5,6,7,8,9,10"'; } else { $usd = 'data-select-options="1,2,3,4,5,6,7,8,9,10"'; }
echo '<option value="'.$g[id].'" '.$sel.' '.$usd.' >'.$g[name].' '.$g[currency].'</option>';}
} else {
echo '<option>'.$lang[no_have_gateways].'</option>';} ?>


Пробовал if($g['id'] == "1,2,3") - не работает.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Merzley
Можно сделать так:
В самом начале добавить массив (ID=>что-надо-подставлять) со всеми возможными вариантами

$arDataSelectOptions = [
    1 => 'data-select-options="5,6,7,8,9,10"',
    5 => 'data-select-options="3,5,7"',
    10 => 'data-select-options="8,9,10"',
    ...
    'default' => 'data-select-options="1,2,3,4,5,6,7,8,9,10"'
];


А затем строчку
if($g['id'] == "1") { $usd = 'data-select-options="5,6,7,8,9,10"'; } else { $usd = 'data-select-options="1,2,3,4,5,6,7,8,9,10"'; }

заменить на
if(isset($arDataSelectOptions[intval($g['id'])]))
    $usd = $arDataSelectOptions[intval($g['id'])];
else
    $usd = $arDataSelectOptions['default'];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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