Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вывод массива в select / 10 сообщений из 10, страница 1 из 1
12.01.2015, 13:23
    #38852188
DoomUnit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
есть два поля ид и некое текстовое.
после праздников голова чет не варит.
до этого мне подходило что-то вроде
Код: 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
12.01.2015, 14:34
    #38852268
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
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
12.01.2015, 14:36
    #38852270
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
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
12.01.2015, 16:28
    #38852397
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
kunaksergey,

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

Код: 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
13.01.2015, 13:57
    #38853138
DoomUnit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
в общем вот что получил в итоге

Код: 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
13.01.2015, 14:17
    #38853166
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
DoomUnit,

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


у вас тег не закрывается.. или вы умудрились засунуть ">" в $select ?
...
Рейтинг: 0 / 0
13.01.2015, 14:41
    #38853204
DoomUnit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
умудрился
Код: php
1.
<option value="'.$_POST["conv"].'" selected="selected" >
...
Рейтинг: 0 / 0
13.01.2015, 15:00
    #38853230
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
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
14.01.2015, 06:10
    #38853739
DoomUnit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вывод массива в select
вы пытаетесь разобраться в моем коде? занятие изначально бессмысленное. я и сам его не оч понимаю))))
но вот без $select список пустой
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / вывод массива в select / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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