PHP выбрал динамический вариант с тернарным оператором

у меня есть этот код для выбора selectbox, используя метод Ternory Operator:

Ternary operator let us return one of two values based on a given condition. It’s syntax is like below.

(expression)?(if expression is true):(if expression is false)

MyCODE:

<select class="form-control contentgroup input-sm" name="access">
<option value="1" <?php echo ($access = 1) ? 'selected' : ''; ?>>1</option>
<option value="2" <?php echo ($access = 2) ? 'selected' : ''; ?>>2</option>
<option value="3" <?php echo ($access = 3) ? 'selected' : ''; ?>>3</option>
</select>

но я вывод, я вижу, что все опции выбраны:

<select class="form-control contentgroup input-sm" name="access">
<option value="1" selected>1</option>
<option value="2" selected>2</option>
<option value="3" selected>3</option>
</select>

как решить эту проблему?

-2

Решение

Это опечатка. Вы используете оператор присваивания = вместо оператора сравнения == или же ===

<option value="1" <?php echo ($access == 1) ? 'selected' : ''; ?>>1</option>
<option value="2" <?php echo ($access == 2) ? 'selected' : ''; ?>>2</option>
<option value="3" <?php echo ($access == 3) ? 'selected' : ''; ?>>3</option>
5

Другие решения

Используйте оператор эквивалентности вместо оператора присваивания:

<option value="1" <?php echo ($access == 1) ? 'selected' : ''; ?>>1</option>
<option value="2" <?php echo ($access == 2) ? 'selected' : ''; ?>>2</option>
<option value="3" <?php echo ($access == 3) ? 'selected' : ''; ?>>3</option>

Вы можете использовать == или же === в то время как последний для строгого сравнения.

0

По вопросам рекламы [email protected]