Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.10.2015, 19:53
Аспирант
Отправить личное сообщение для steepfox Посмотреть профиль Найти все сообщения от steepfox
 
Регистрация: 24.02.2011
Сообщений: 66

Выводится ошибка:

(!) Notice: undefined index:_GET
Ответить с цитированием
  #12 (permalink)  
Старый 13.10.2015, 20:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

$_GET - это суперглобальный массив, и даже при первом открытии этой страницы, когда запроса на сортировку не было, условие $_GET['keyname'] никогда не вернет ошибки ибо $_GET['keyname'] в этом случае вернет что и положено - null, если выключать вывод предупреждений на экран, что на удаленном сервере обязательно нужно делать, в том числе и не выводить ошибки, а писать их в лог. файл.

Notice: - это не ошибка, а предупреждение. Делайте дополнительную проверку isset($_GET['keyname']), если не уверены в правоте своей. И я уже говорил, где-то до вывода уже должна быть проверка пришедших параметров (ключей) сортировки, используйте их.
Ответить с цитированием
  #13 (permalink)  
Старый 13.10.2015, 23:46
Аспирант
Отправить личное сообщение для steepfox Посмотреть профиль Найти все сообщения от steepfox
 
Регистрация: 24.02.2011
Сообщений: 66

А можно по другому это сделать?
Ответить с цитированием
  #14 (permalink)  
Старый 14.10.2015, 00:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

По другому это как? Ну так по уму списки выгодно выводить в цикле, дабы не писать по много раз одно и то же, да если еще и в значения опций помещать только изменяемое, а не все скопом, то все упрощается. Кроме того, два ключа определяют 4 набора сортировки, которые с успехом можно заменить на 0-3, где четные значения определяют сортировку tsort по возрастанию, нечетные по убыванию, а деленное по модулю 2 это значение определит поле сортировки sort.

В цикле получаем код списка сравнивая итерацию с единственным GET параметром (0-3), и если равны, то выбираем опцию.

Еще по другому, это на клиенте всю портянку значений опций сравнивать параметром url, но я даже и писать такого не буду, такое можно советовать только ленивым.
Ответить с цитированием
  #15 (permalink)  
Старый 14.10.2015, 00:59
Аспирант
Отправить личное сообщение для steepfox Посмотреть профиль Найти все сообщения от steepfox
 
Регистрация: 24.02.2011
Сообщений: 66

Наконец нашел код, где формируются код тегов option, нужно только определиться, какую из них использовать, а как это сделать не понимаю. Сам код:

<?php


function formation_html_select_from_mas($mas,$on_choose_value=false,$choose_value="",$on_add_begin=false,$value_add_begin=-1,$name_add_begin="Выберите...",$return_only_html = false)
  {
   
   $html="";
   $selected=false;
   
   foreach ($mas as $key => $value)
     {
      $element_choose="";
      if ($on_choose_value && $choose_value == $key)
        {
         $element_choose="selected='selected'";
         $selected=true;
        }
      $html.="<option $element_choose value='$key'>$value</option>";
     }
   if ($on_add_begin)
     {
      $html="<option value='$value_add_begin'>$name_add_begin</option>".$html;
     }
   if ( !$return_only_html )
     $rez=array("html"=>$html,"selected"=>$selected);
    else
      $rez = $html;
   return ($rez);
  }


function formation_html_select_from_mas_rows($mas,$key_value,$key_name,$on_choose_value=false,$choose_value="",$on_add_begin=false,$value_add_begin=-1,$name_add_begin="Выберите...",$return_only_html = false)
  {
   // если $key_value равняется false, то для значения option будет браться ключ соответствующей строки массива
   $html="";
   $selected=false;
   
   foreach ($mas as $key_row => $one_row)
     {
      $key= ( ( $key_value === false ) ? $key_row : $one_row[$key_value] );
      $value=$one_row[$key_name];
      $element_choose="";
      if ($on_choose_value && $choose_value == $key)
        {
         $element_choose="selected='selected'";
         $selected=true;
        }
      $html.="<option $element_choose value='$key'>$value</option>";
     }
   if ($on_add_begin)
     {
      $html="<option value='$value_add_begin'>$name_add_begin</option>".$html;
     }
   if ( !$return_only_html )
     $rez=array("html"=>$html,"selected"=>$selected);
    else
      $rez = $html;
   return ($rez);
  }
Ответить с цитированием
  #16 (permalink)  
Старый 14.10.2015, 05:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Из серии "найди пять отличий"? Нет бы проверять аргументы и соответственно выполнение, плодятся близнецы именами разные.

Какая используется - так по имени функции, не хватает на это опыта, так на время выяснения предварите вывод списка произвольным текстом, по которому и будет найдено, например в первой функции строку 7 заменить на $html="Ищу 1";, а во второй строку 35 на $html="Ищу 2";

Вы уверены, что эти функции вообще используются в коде показанном ранее?
Ответить с цитированием
  #17 (permalink)  
Старый 14.10.2015, 11:15
Аспирант
Отправить личное сообщение для steepfox Посмотреть профиль Найти все сообщения от steepfox
 
Регистрация: 24.02.2011
Сообщений: 66

Разработчик движка сказал,что именно эти функции используются.
Ответить с цитированием
  #18 (permalink)  
Старый 14.10.2015, 11:17
Аспирант
Отправить личное сообщение для steepfox Посмотреть профиль Найти все сообщения от steepfox
 
Регистрация: 24.02.2011
Сообщений: 66

Как связать все это дело с предыдущим кодом? Так как используется при выборе фильтрации 5 пунктов.
Ответить с цитированием
  #19 (permalink)  
Старый 14.10.2015, 11:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от steepfox
Разработчик движка сказал,что именно эти функции используются.
Разработчик? Так третируйте его, что же вы маетесь, с бедламом вашего разработчика даже с коньяком не охота разбираться.

Вы задайте своему разработчику вопрос - как может код на физически существующей странице, в котором не чисто html-результат некой функции, а монотонно прописанная строка каждой опции списка с php-вставками, может иметь отношение к некой функции?

Последний раз редактировалось laimas, 14.10.2015 в 11:44.
Ответить с цитированием
  #20 (permalink)  
Старый 14.10.2015, 11:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от steepfox
Как связать все это дело с предыдущим кодом?

Что именно связать - функции разработчика с кодом, который вы ранее показывали? Так это с вопросом к разработчику.

Сообщение от steepfox
Так как используется при выборе фильтрации 5 пунктов.

Да хоть 55, и если не описывать каждый набор "портянками", то хоть 255, все равно будет компактно. И эту компактность (наборы) запросто можно описать единственным числом.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор и сброс выбора в select Veterinar Элементы интерфейса 4 08.09.2014 18:52
Обработка выбора select systemiv Общие вопросы Javascript 2 20.11.2012 01:44
select для выбора цвета someLogin Элементы интерфейса 0 10.10.2011 20:15
Пользовательский скрипт для выбора option в select по умолчанию justalittleperson Элементы интерфейса 1 04.10.2010 06:13
Вставка текста в textarea после выбора select option modelisto Общие вопросы Javascript 2 14.10.2009 19:27