Формирвоание <SELECT> из файла

Статус
В этой теме нельзя размещать новые ответы.

letsgo

Новичок
Формирвоание <SELECT> из файла

Добрый день.
Есть файл *.txt, которые содержит различные наименования (каждое наименование на новой строке).
Скрипт, который считывает из файла эти наименования, формирует поле
PHP:
<SELECT>.
<option>наименование1</option>
<option>наименование2</option>
Необходимо сделать так, чтобы, если наименование1 = заданному слову, то выводилось seleted.
К примеру,
PHP:
$word = "наименование1";
Тогда Select выглядит так:
PHP:
<SELECT>.
<option selected>наименование1</option>
<option>наименование2</option>
Вот код, который я использую:

PHP:
echo '<select width="100%" name="dd" size="1">';
$file_handle = fopen("data/firms.txt", "r");
while (!feof($file_handle)) {
    $line = fgets($file_handle);
    if ($line == $word) { 
        $status == " selected"; 
    } 
    echo '<option'.$status.'>'.$line.'</option>';
}
fclose($file_handle);
echo '</select>';
В общем, в таком исполнении, все <option> выводятся, как $word.

Подскажите, в чем ошибка?
 

letsgo

Новичок
Если имеете ввиду, что нужно два знака равно, то я так тоже пробовал. if ($line == $word)

В этом случае, выводятся все строки из файла но $status не выводится
 

Фанат

oncle terrible
Команда форума
letsgo
Очень облегчает написание программ такая штука, как форматирование кода. оно осуществляется очень просто - отступами. Причем отступы ставятся не от балды для красоты, а в соответствии со строгими правилами:
1. те операторы, которые вложены в другой, пишутся с отступом.
2. те, которые не вложены в другой, а исполняются последовательно - пишутся без отступа относительно друг друга.
попробуй отредактировать свой код с учетом этих правил.
 

pilot911

Новичок
$status == " selected"; - это сравнение, а не присваивание

в этой строчке у тебя ничего не происходит, кроме сравнения

должно быть присваивание

$status = " selected";


и лучше писать так:


PHP:
    while (!feof($file_handle)) {
          $line = fgets($file_handle);
          echo '<option '.($line == $word ? " selected " : "" ).'>'.$line.'</option>';
    }
 

letsgo

Новичок
$status = " selected";
так тоже не работает :(
выводятся все строки из файла но $status не выводится
 

pilot911

Новичок
значит, нет равенства :)

как ты $word заполняешь значением ?
 

Фанат

oncle terrible
Команда форума
странно. вроде, в прошлом варианте скобка не там закрывалась.
letsgo запость сюда ТЕКУЩИЙ вариант своего кода, который ты ЗАПУСКАЕШЬ.
 

letsgo

Новичок
Автор оригинала: *****
странно. вроде, в прошлом варианте скобка не там закрывалась.
letsgo запость сюда ТЕКУЩИЙ вариант своего кода, который ты ЗАПУСКАЕШЬ.
PHP:
$word = "Наименование1";
echo '<select width="100%" name="dd" size="1">';
$file_handle = fopen("data/name.txt", "r");
	while (!feof($file_handle)) {
  	$line = fgets($file_handle);
		if ($line == $word) { $status = " selected"; } 
   	echo '<option'.$status.'>'.$line.'</option>';
	}
fclose($file_handle);
echo '</select>';
 

Фанат

oncle terrible
Команда форума
$line = trim(fgets($file_handle));

но это твое "так тоже не работает" меня убивает
 

letsgo

Новичок
Все варианты, которые я пробовал уже :)
Если использовать trim, то почти работает :)

Т.е. теперь до нужного значения "selected" не отображается, а вот после значения, все option идут с параметром selected :)

так что, "так тоже не работает" :)

PHP:
<option>Тестовое</option> 
<option>Тестовое1</option> 
<option>Тестовое2</option> 
<option selected>Наименование 1</option> 
<option selected>Тестовое 3</option>
 

Фанат

oncle terrible
Команда форума
подумай, как сделать, чтобы не отображалось после
тебе знакомо такое действие, как подумать?

-~{}~ 07.03.09 17:58:

давайте.
посадим, повяжем платочек и будем кормить кашкой
еще балет станцуем

-~{}~ 07.03.09 17:58:

давай, дальше сам.
а то набежит умников
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху