powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вывод массива в select
10 сообщений из 10, страница 1 из 1
вывод массива в select
    #38852188
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть два поля ид и некое текстовое.
после праздников голова чет не варит.
до этого мне подходило что-то вроде
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
		<select name="conv" >	  
			<?php
				foreach($list_name as $value => $conv) 
				{
					$select = isset($_POST['conv']) && $value == $_POST['conv']?'selected>':'>';	
					echo '<option value="'.$value.'"'.$select.$conv[0].'</option>';	
				}
			?>
		</select> 	


где $list_name
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
array(106) {
  [0]=>
  array(2) {
    [0]=>
    string(14) "БЛОЧНАЯ"
    [1]=>
    string(3) "310"
  }
  [1]=>
  array(2) {
    [0]=>
    string(16) "ЯНИЧКИНО"
    [1]=>
    string(3) "312"
  }


но это довольно примитивное решение в том плане что я всегда имею один и тот же список.
необходимо по ид отображать выбранный элемент первым после загрузки данных из бд и список примет вид
Код: php
1.
2.
3.
4.
5.
array(106) {
  [310]=>
  string(14) "БЛОЧНАЯ"
  [312]=>
  string(16) "ЯНИЧКИНО"


как тогда отображать тот или иной элемент первым (причем без дублей)
................
может как-то косно написал. в двух словах - имеем первоначальный список (пусть будет что есть). но при изменении записи мы знаем что выбран тот или иной пункт. знаем ID. как создать список с уже известным ид?
...
Рейтинг: 0 / 0
вывод массива в select
    #38852268
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,

то есть когда активный елемент 100, тебе этого мало, тебе надо чтобы при изменении выбора на 200 скажем, 100 был всеравно вначале списка? зачем???

сортировка в базе не катит? ЗЫ только не надо создавать новую тему- как сделать определёный елемент первым, там каждые две недели подобный вопрос звучит от людей, не постигших дао-де-сиич.

а если задачу чисто в рамках пхп решать,и когда именно просто один елемент надо вначале,
я бы делал так, чтоб не бегать дважды по масиву.

вместо вывода формировал бы строку, и когда надо подцепил бы нужный опшин не в конец а в начало.

можно хитро закрутить с замыканием

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
function mytextbuffer()
{
$str = '';

return function($add_str = null, $force_first = false) use($str)
{
 if($add_str !== null)
{
 if($force_first)
{
 $str = $add_str.$str;
}
else
{
 $str = $str.$add_str;
}
return true;
}
else
{
return $str;
}
};

}

//use

$buffer = mytextbuffer();

foreach ($array as $key => $value)
{
$buffer("<option value='$key'>$value</option>", $key == $need_first_item);
}

echo $buffer();
...
Рейтинг: 0 / 0
вывод массива в select
    #38852270
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DoomUnit,
1. Можно добавить нужное значение в <select> первым, а затем остальные(кроме первого);
2. Можно что-то в этом роде:

Код: php
1.
2.
3.
4.
5.
6.
$arr=array("one","two","three","for");
var_dump($arr);
$str=$arr[2];
unset($arr[2]);
array_unshift($arr,$str);
var_dump($arr);



Если конечно, правильно понял вопрос.
...
Рейтинг: 0 / 0
вывод массива в select
    #38852397
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergey,

вопрос правильно понял, только у него
$data[$index_of_data][$field_name]
и выбор первого елемента = $data[<some_unknown_index>]['id'] == $specific_id
...
Рейтинг: 0 / 0
вывод массива в select
    #38853091
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин я запутался

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
      <select name="conv" >     
            <?php
                echo '<option value="'.$list_nam[$_GET["client"]].'" selected="selected" > '.$list_nam[$_GET["client"]].'</option>';
                unset($list_nam[$_GET["client"]]);
                    foreach($list_nam as $value => $conv) 
                {    
                    echo '<option value="'.$value.'"'.$select.$conv.'</option>'; 
                }
            ?>
        </select> 



так он отображает передаваемое гетом значение. но по кнопке сабмит уходит пустота.
...
Рейтинг: 0 / 0
вывод массива в select
    #38853138
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем вот что получил в итоге

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
			while ($row = pg_fetch_row($rs))    
				{						
					$list_nam[$row[1]] = $row[0];
				}	
                               if(isset($_GET["client"])) 
				{
					$client = $list_nam[$_GET["client"]]; 
				}
		
			 if(isset($_POST['conv'])) 	
			{ 
				echo $client =  $_POST['conv'];
			}
			else  $client =  null;


Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 	      <select name="conv" >     
            <?php
                if (isset($_POST['conv']))
				{
					echo '<option value="'.$_POST["conv"].'" selected="selected" > '.$list_nam[$_POST["conv"]].'</option>';
					unset($list_nam[$_POST["conv"]]);
				}
				else 
				{
					echo '<option value="'.$_GET["client"].'" selected="selected" > '.$list_nam[$_GET["client"]].'</option>';
					unset($list_nam[$_GET["client"]]);
				}			
                    foreach($list_nam as $value => $conv) 
                {    
                    echo '<option value="'.$value.'"'.$select.$conv.'</option>'; 
                }
            ?>
        </select> 	
...
Рейтинг: 0 / 0
вывод массива в select
    #38853166
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DoomUnit,

Код: php
1.
echo '<option value="'.$value.'"'.$select.$conv.'</option>'; 


у вас тег не закрывается.. или вы умудрились засунуть ">" в $select ?
...
Рейтинг: 0 / 0
вывод массива в select
    #38853204
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
умудрился
Код: php
1.
<option value="'.$_POST["conv"].'" selected="selected" >
...
Рейтинг: 0 / 0
вывод массива в select
    #38853230
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DoomUnit,

все равно нифига не понял.. у вас при :
Код: php
1.
$_POST['conv']==true:<option value="'.$_POST["conv"].'" selected="selected" > 


иначе:
Код: php
1.
<option value="'.$_GET["client"].'" selected="selected" > 



т.е одно поле уже выбрано
дальше цикл в котором:
Код: php
1.
echo '<option value="'.$value.'"'.$select.$conv.'</option>';


но почему не :
Код: php
1.
echo "<option value=$value>$conv</option>"

;Зачем тут переменная
Код: php
1.
$select

. Тем более в верхней редации она была, а в последней ее уже нет.
...
Рейтинг: 0 / 0
вывод массива в select
    #38853739
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы пытаетесь разобраться в моем коде? занятие изначально бессмысленное. я и сам его не оч понимаю))))
но вот без $select список пустой
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вывод массива в select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]