Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: PHP и AJAX и 3 тега select.

Всем доброго времени суток. Возникли проблемы с реализацией отправки данных через ajax, а именно:
У меня есть 3 тега select в которые из базы выводятся значения такие как цвет, размер и цена(одежды). Когда я выбираю значения и нажимаю на кнопку submit данные отправляются post-ом в вызываемую через php функцию такого вида:
$product->get_product($_POST['colors'], $_POST['prices'], $_POST['size']);
Непосредсвенно данные это просто числовые значения от 0 - до n, они же id категорий в базе. Вызов функции, как и сами селекты находятся в одном файле index.php, сама реализация выборки из базы данных находится в другом - product.php
Ув. сообщество подскажите как передать данные в вызываемую функцию в качестве параметров через ajax. Было бы не плохо реализовать отправку хотябы с одного select-a.
P.S. прежде чем тут писал много гуглил, но ничего толкового не вышло. Спасибо.
Ответ: Отвечу на письмо тут. Если в вашем проекте используется jQuery, то отправить асинхронный запрос это просто:

$(function() {
    //устанавливаем обработчик на отправление формы, например по ее ID, пусть это будет для примера myform
    $("#myform").submit(function() {
        //отправляем ajax-запрос на сервер, используя простейший из них
        //если форма это три указанных списка, то метод .serialize() и вернет необходимую строку запроса с параметрами
        $.get('url', $(this).serialize(), function(data) {
            //data будет содержать ответ сервера
        });
        //отменяем отправку формы
        return false;
    }); 
});


Здесь можно в jQuery. Если jQuery не используется, то тоже не проблема, в основе своей. Выставлять код нужно свой, ну или пояснять что используется, иначе гадать...
Вопрос: Тег Select на сайте. Разные браузеры

Всем доброго времени суток, уважаемые форумчане...
У меня сложилась такая проблема. Имеется тег select, без каких либо стилей, в браузере chrome отображается так как надо) А вот в firefox проблема... Если какое нибудь решение моей проблемы?? перегуглил весь инет, не нашел ответа. Помогите пожалуйста, подскажите. Необходимо, что бы стрелочка не выделялась так

. И мне надо, что бы в FireFox выглядело так же как и в хроме... Подскажите пожайлусто, что можно сделать?
p.s. Афигеть. Скрины не добавляются...
Ответ:
Надо "обнулить" стандартные стили для всех браузеров и сделать свои.

Обнуление стилей делается в CSS так:
-moz-appearance (-webkit-appearance)

Вопрос: Проблема с тегом select

Здравствуйте, дорогие форумчане. Я - новичок самоучка, поэтому для вас проблема может быть не очень сложная.

Мне нужно сделать выпадающий список, как на рисунке. Интересует меня то, как сделать такие оглавления, как на изображении ("по сторам", "по товару"), чтоб они не выпадали вместе с option.

Простите, если не совсем понятно и корректно выражаюсь!
Ответ:
Нашел решение по этой ссылке
Вопрос: Как написать проверку значения select с массивом?

Добрый день!

Только начал изучение js/jquery (если честно, не всегда понимаю где что), а программировал в последний раз лет 15 назад на бейсике в школе.

Есть значения в теге select:

<select id="myselect">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>


Есть ассоциативный массив в js

var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
],

Получаю значение

$( "#myselect option:selected" ).text();


Как получить значения val и val2 если если значение key совпадает со значением select и сохранить это в переменную?
Ответ:
Сообщение от angelzzz
на строке a = s[0];

var arr = [
{key:1, val:123, val2:1},
{key:2, val:223, val2:2},
{key:3, val:323, val2:2},
{key:4, val:423, val2:1}
], obj = {}, a,b;
Object.keys(arr).forEach(function (a) {
  var el = arr[a];
  obj[el.key] = [el.val,el.val2];
});

  var s = obj[1];
  a = s[0];
  b = s[1];
 alert(a+ " - " + b)
Вопрос: Кастомизированный select

Доброго вечера! Есть вот такое задание у меня - надо сделать вот такой select, в интернете подходящий скрипт на кастомизацию не нашел, может даже этот блок и не select-ом делается, но не знаю как. Надо что бы по выбору года, этот год отображался вместо текста "год выпуска", и при возможности повторно выбрать другой год(насколько знаю так работает только тег Select). Подскажите плагин какой, либо как реализовать. Заранее спасибо
Ответ: Павел Турченко,
можно добавить сброс при повторном выборе того же года слегка изменив строку 29
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .year_div{
    display: none;
  }
  .red{
      background-color: #FF0000;
      color: #FFFFFF;
      padding: 2px 5px;
      border-radius: 4px;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
 $(function() {
    var b = $(".year_div"),
        c = $("#year_link"),
        d = $(".year_dropdown",b);
    c.add(b).click(function(a) {
        a.preventDefault();
        a = $(a.target);
        a.is(d) && c.text(a.is('.red')? 'Год выпуска': a.text()) && d.not(a.toggleClass('red')).removeClass('red');
        b.slideToggle()
    })
});

  </script>
</head>

<body>


 <a href="#" class="btn btn-default dropdown-toggle btn_grey" id="year_link">Год выпуска </a>
    <div class="div_dropdown year_div">
      <a href="#" class="year_dropdown">1999</a>
      <a href="#" class="year_dropdown">2000</a>
      <a href="#" class="year_dropdown">2001</a>
      <a href="#" class="year_dropdown">2002</a>
      <a href="#" class="year_dropdown">2003</a>
      <a href="#" class="year_dropdown">2004</a>
  </div>



</body>

</html>
Вопрос: Работа со значением тега select

Господа, очень нужна ваша помощь. Есть код
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    $(document).ready(function(){
 
    $('#idcat').change(function(){
        $.ajax({
            type: "POST",
            url: "ajax.php",
            data: "select="+$("select").val(),
            success: function(html){
            $("table").html(html);
    }
    });
    return false;
    });
 
    });
Есть поле со списком, по умолчанию в нем значение пустое, и данные выводятся если выбрал нужное значение. Я хочу сделать чтобы по умолчанию стояло первое значение списка. Как сделать чтобы данные выводились сразу по этому значению? Всем плюсы в карму за ответы, гарантирую!!
Ответ: sad67man, Большое спасибо!
Вопрос: проблема с select в angular.js

		<select name="country" 
ng-model = "coutryId"
required = "required"
ng-change = "countriesEdit.editCountry(0)">
<
option ng-repeat = "country in countriesEdit.countries"
ng-value="country.id"
value = "country.id"
ng-selected = "citiesList.currentCity.country == country.id">
{{country.rus}}|{{country.eng}}|{{country.code}}
</option>
</
select>


Есть такой код.
Фишка вот в чем: первый элемент option - undefined (<option value="? undefined:undefined ?"></option>) . Но, после выбора другого элемента, он пропадает!

Кто-то сталкивался? что делать?
Ответ: Гость_glock18
Большое спасибо)
Вопрос: Получать и удалять значения из select

Здравствуйте. У меня возникла вот такая вот проблема, подскожите пожалуйста.
Есть список select:
<select class="selectList selectTegs" name="">
	<option class="disabled"   value="">Выберите тег</option>
	<option class="openSelect" value="">Тег 1</option>
	<option class="openSelect" value="">Тег 2</option>		
<option class="openSelect"  value="">Тег3</option>																
</select>



Есть кнопка:
<a class="addTegVideoSelect">Добавить</a>


И список ul в который происходит добавление из списка:
<ul class="listTegsSel keyVideo liInline">
												
</ul>

И собственно скрипт:
$("a.addTegVideoSelect").click(function(){
		var tegSeleted = $("select.selectTegs option.openSelect:selected");
		var tegDisabled = $("select.selectTegs option.disabled");
		var tegText = tegSeleted.text();
		var tegTextDisabled = tegDisabled.text();
		
		if(tegSeleted.is(".openSelect")){
			$("ul.listTegsSel").append("<li><a href='#'>" + tegText + "</a></li>");
			$("div.selectTegs span.selectText").text(tegTextDisabled);
			tegSeleted.remove();	
		}
		
	});
	
	$("ul.listTegsSel li").click(function(event){
		event.preventDefault();
		var listTegsSelAText = $(this).text();
		$("select.selectTegs").append( $('<option class="openSelect" value="">' + listTegsSelAText + '</option>'));
		$(this).remove();
	});




Делает он следующее:
Человек выбирает пункт в списке Select и жмет кнопку "Добавить".
После этого выбранный пункт попадает в ul и удаляется из select
Это работает как надо, но это не все
Теперь человек может удалить выбраны пункты из списка ul кликнув по ним. Пункт на который было кликнуто должен будет удалиться из ul и попасть обратно в select. Но почему то не работает, то есть работает только если пункты уже изначально были в списке ul, тогда да они удаляются из него и попадают в select, а вот те которые были добавлены из select в ul по средством кнопки ни как не реагируют(не удаляются из ul и не попадают обратно в select).
Подскажите пожалуйста в чем у меня проблема.
Ответ: Все я понял в что нужно было сделать))
$("body").on("click", "a.addTegVideoSelect", function(){
		var tegSeleted = $("select.selectTegs option.openSelect:selected");
		var tegDisabled = $("select.selectTegs option.disabled");
		var tegText = tegSeleted.text();
		var tegTextDisabled = tegDisabled.text();
		
		if(tegSeleted.is(".openSelect")){
			$("ul.listTegsSel").append("<li><a href='#'>" + tegText + "</a></li>");
			$("div.selectTegs span.selectText").text(tegTextDisabled);
			tegSeleted.remove();	
		}
		
	});
	
	$("body").on("click", "ul.listTegsSel li", function(event){
		event.preventDefault();
		var listTegsSelAText = $(this).text();
		$("select.selectTegs").append( $('<option class="openSelect" value="">' + listTegsSelAText + '</option>'));
		$(this).remove();
	});



за место
$("a.addTegVideoSelect").click(function(){
Нужно было так
$("body").on("click", "a.addTegVideoSelect", function(){
Вопрос: вывод пары тегов label и select

Есть пара label и select, и ещё одна пара - label и select. Как их вывести горизонтально?

Примерно так:

label select label2 select2.
Ответ: yelena,

Спасибо! Проблема действительно была в стилях!
Вопрос: Стилизация текста в теге <select>

Как сделать часть строки в теге SELECT одним цветом, а часть другим
HTML5
1
2
3
4
5
6
7
<select class="sel-prodaga">
  <option class="name">Цены <span class="pr-name">Прайс-Лист<span></option>
  <option class="name">Цены <span style="color:#008000">Скидки</span></option>
  <option class="name">Цены Акции</option>  
  <option class="name">Цены Спецпредложения</option>
  <option class="name">Цены Скачать прайс</option>
</select>
Надо что-бы слово Цены было черного цвета, а Прайс-Лист - серого
к сожалению вся строка получается одним цветом.
Ответ: Спасибо всем за помощь.
Вот скриншот селекта, который мне нужно реализовать:

Как видите текст слов в селекте разный и к тому же нужно поменять внешний вид треугольника выбора в селекте, а это как я понял тоже невозможно сделать с помощью CSS.
Видимо придется использовать какой-то плагин. Буду благодарен за информацию о том какой именно плагин позволить реализовать такой внешний вид селектов.