Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2019, 16:18
Интересующийся
Отправить личное сообщение для sloneCH Посмотреть профиль Найти все сообщения от sloneCH
 
Регистрация: 16.04.2019
Сообщений: 18

Как вставить функцию в запрос
Добрый день,
Есть запрос
$.ajax({
        url: '/product/getData.php',
        success: function (data) {
        var option = '<option value="не выбрано||0||0" data-u1="0" data-w1="0">не выбрано</option>';

	data.n.forEach(function (item) {
            option += '<option value="'+item.Total+'||0||0" data-u="0">'+item.Total+'</option>'
            });
            option += '</optgroup>';
            $('.CalculationType1').attr('data-value', '1');
            $('.CalculationType1').html(option);
		   }
    });

Выборка из базы данных без проблем.
Каким образом можно вставить функцию javascript (format (option))в ajax запрос и использовать данных из базы данных mySQL, т.е. подставить вместо слова Пример к примеру данные из поля Description?
function format (option) {
			console.log(option);
			if (!option.id) { return option.text; }
			var ob = '<span style="color:green; width:150px;">Пример</span> '+option.text;	
      
            return ob;
            
            
		};

Т.е. как правильно это сделать.
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2019, 16:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от sloneCH
использовать данных из базы данных mySQL, т.е. подставить вместо слова Пример к примеру данные из поля Description
Пояснили бы более доходчиво что к чему, что такое <span style="color:green; width:150px;">Пример</span> и т.д.
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2019, 20:22
Интересующийся
Отправить личное сообщение для sloneCH Посмотреть профиль Найти все сообщения от sloneCH
 
Регистрация: 16.04.2019
Сообщений: 18

<span style="color:green; width:150px;">Пример</span> - это сделал цвет зеленым. Можно конечно и <font color="green">.
Вот скрин

Товар 1, Товар 2 и т.п. у меня получается вывести с помощью ajax запроса.
А слово Пример я вывел с помощью последней функции в первом моем сообщении.
Как засунуть в запрос функцию вывода слова Пример не знаю. Т.е. вместо слова Пример необходимо тоже выводить данные из БД, как в запросе типа +item.Description+.
Description - поле в базе данных.
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2019, 20:59
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Вы можете использовать data-* атрибут, в который запишите значение item.Description.
$.ajax({
	url: "/product/getData.php",
	success: function (data) {
		var option = '<option value="не выбрано||0||0" data-u1="0" data-w1="0">не выбрано</option>';

		data.n.forEach(function (item) {
			option += '<option value="' + item.Total + '||0||0" data-u="0" data-description="' + item.Description + '">' + item.Total + "</option>";
		});

		$(".CalculationType1").attr("data-value", "1");
		$(".CalculationType1").html(option);
	}
});


И тогда можете получить доступ к этому значению через свою функцию...
function format(/* HTMLOptionElement */ option) {
	if(!option.id) return option.text;

	return '<span style="color:green; width:150px;">' + option.dataset.description + '</span> ' + option.text;
};


Если я вас не так понял, то вы можете показать больше кода, например, как у вас используется функция format!

Сообщение от sloneCH
Можно конечно и <font color="green">
Этот элемент не следует использовать, чтобы применить стили, используйте атрибут style, или лучше используйте стили в отдельном файле.

Последний раз редактировалось Malleys, 13.05.2019 в 21:07.
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2019, 03:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Яснее не стало. Если речь о select, то в его опции нельзя вставить html код чтобы раскрасить часть текста опций. Если же речь кастомизированном списке, то можно передать в плагин, который осуществляет кастомизацию спика, эту часть текста через data атрибут как выше сказано. То есть, это будет не функция, в которую передать.
Ответить с цитированием
  #6 (permalink)  
Старый 14.05.2019, 09:15
Интересующийся
Отправить личное сообщение для sloneCH Посмотреть профиль Найти все сообщения от sloneCH
 
Регистрация: 16.04.2019
Сообщений: 18

Сообщение от Malleys Посмотреть сообщение
Если я вас не так понял, то вы можете показать больше кода, например, как у вас используется функция format!
Вот пример использования функции format https://jsfiddle.net/bL12qudr/3/
У себя я создал затем ajax запрос
$.ajax({
        url: '/product/getData.php',
        success: function (data) {
        var option = '<option value="не выбрано||0||0" data-u1="0" data-w1="0">не выбрано</option>';
        data.n.forEach(function (item) {
        option += '<option value="'+item.Total+'||0||0" data-u="0">'+item.Total+'</option>'
            });
            $('.CalculationType1').attr('data-value', '1');
            $('.CalculationType1').html(option);
           }
});

И данные из базы данных появились. Радости было столько.
Но затем я решил установить напротив каждого Товар1 Товар2 и т.п. -описание товара - тоже из базы данных.
Вставил ниже ajax запроса - функцию формат.
function format (option) {
			console.log(option);
			if (!option.id) { return option.text; }
			var ob = '<span style="color:green; width:150px;">Пример</span> '+option.text;	
      
            return ob;
            
            
		};

Отобразилось слово Пример зеленого цвета, я тоже порадовался. Но вот как вместо слова Пример вставить данные из базы данных не получается.
Спасибо за совет, но так как Вы посоветовали через атрибут data - всё исчезло и не отображается.
Ответить с цитированием
  #7 (permalink)  
Старый 14.05.2019, 09:18
Интересующийся
Отправить личное сообщение для sloneCH Посмотреть профиль Найти все сообщения от sloneCH
 
Регистрация: 16.04.2019
Сообщений: 18

Сообщение от laimas Посмотреть сообщение
Яснее не стало. Если речь о select, то в его опции нельзя вставить html код чтобы раскрасить часть текста опций. Если же речь кастомизированном списке, то можно передать в плагин, который осуществляет кастомизацию спика, эту часть текста через data атрибут как выше сказано. То есть, это будет не функция, в которую передать.
Мне не нужно раскрасить код, это я для примера сделал, чтобы было понятно что хочу поменять. В данном случае слово зеленого цвета Пример хотел заменить данными из базы данных.
Ответить с цитированием
  #8 (permalink)  
Старый 14.05.2019, 11:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это плагин, и надо было структуру объекта рассмотреть:

function format (option) {
    if (!option.id) return option.text;
    console.log(option.element);
    return '<span style="color:green; width:150px;">'+option.element.dataset.description+'</span> '+option.text;	
};
Ответить с цитированием
  #9 (permalink)  
Старый 14.05.2019, 11:36
Интересующийся
Отправить личное сообщение для sloneCH Посмотреть профиль Найти все сообщения от sloneCH
 
Регистрация: 16.04.2019
Сообщений: 18

Спасибо большое. На примерах и с вашей помощью разбираюсь.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить в input value ответный код ainur777 Общие вопросы Javascript 4 19.09.2014 16:46
Как вызвать функцию из переменной? sss2019 Общие вопросы Javascript 7 02.09.2014 13:34
Как вызвать свою функцию из «чужого» кода в Java Script, не переписывая «чужой» код? korobochkin Библиотеки/Тулкиты/Фреймворки 2 19.07.2014 16:17
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21
POST запрос воспринимается как OPTIONS neshta AJAX и COMET 0 29.03.2011 23:34