HTML <select option selected = "selected"> не будет работать с функцией PHP - PullRequest
0 голосов
/ 03 декабря 2011

Я хочу отобразить тег с выбранной опцией, которая поступит из базы данных.Это мой код:

<?
function check($opt) {
    if ($rows['fa'] = $opt) {
        echo " selected='selected'";
    }
}
echo $fa;
?>

<select name="opt" id="opt">
    <option value="o1"<? check('o1'); ?>>Option1</option>
    <option value="o2"<? check('o2'); ?>>Option2</option>
</select>

Проблема в том, что функция не работает с $ row ['$ fa'], и она работает, если я просто набираю "o1" или "o2",Если я получаю echo $ fa, он выдаст мне результат ("o1" или "o2") из базы данных.

Ответы [ 4 ]

1 голос
/ 03 декабря 2011

$rows['fa'] определяется вне функции, которая не имеет значения в области действия функции

Другие изменения: -

selected('o1', $row['fa']);

function selected($opt, $val)
{
  if ($opt == $val)
  {
    echo " selected='selected'";
  }
}
1 голос
/ 03 декабря 2011

(при условии, что $rows уже определено).

Вы используете = для сравнения переменных, которые не будут работать.= назначает.Вы ищете ==:

function check($opt) {
  if ($rows['fa'] == $opt) {
    echo " selected='selected'";
  }
}

Также попробуйте использовать $fa вместо 'fa' в индексе массива.Я не уверен, что это то, на что вы ссылаетесь:

function check($opt) {
  if ($rows[$fa] == $opt) {
    echo " selected='selected'";
  }
}
0 голосов
/ 03 декабря 2011

Если данные строки в $ fa, установлены как глобальные, обратите внимание на область, сравнение (==):

<?
function check($opt) {
   global $fa;
   if ($fa == $opt) {
      echo " selected='selected'";
   }
}
echo $fa;
?>
0 голосов
/ 03 декабря 2011
<select name="opt" id="opt"> 
<option value="o1"<? if($rows['fa'] == 'o1') ?> selected='selected'<? endif ?>>Option1</option> 
<option value="o2"<? if($rows['fa'] == 'o2') ?> selected='selected'<? endif ?>>Option2</option>
</select> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...