• Какие книги стоит читать новичку по Java, кроме Эккеля (Философия Java)?

    @Shinso
    Давно его читал, но помню была одна очень неприятная деталь, а именно в русскоязычной версии по непонятной причине порезали практические задачи, если с того времени ничего не поменялось то однозначно стоит читать англоязычнуя версию.
    Ответ написан
    1 комментарий
  • Как изменить значение поля MySQL используя ajax запрос?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Вам нужно для этого серверное приложение. Поскольку у вы умеете в JavaScript то могу посоветовать использовать nodejs
    Ответ написан
    Комментировать
  • Как изменить значение поля MySQL используя ajax запрос?

    PavelBlum
    @PavelBlum
    Web developer
    Вам нужен серверный язык для этого, пишите простой аякс на файл-оброботчик на бекенде с флагом (1-active, 0-blocked) и id юзера.
    На бекенде ловите аякс, получаете значение флага и id, делаете SELECT по id и INSERT со значением флага.
    P.S. пишу с колокольни PHP.
    Ответ написан
    Комментировать
  • Как связать checkbox со строкой напротив?

    @choupa
    Архитектор (обычный, который строит)
    Не понятно, что значит "связать со строкой" напротив. Я понимаю это, что чекбокс делает данную строку "выбранной", что ниже означает присвоение класса selected. Также можно клик по строке считать кликом по чекбоксу (это реализовано в третьей строке)

    jQuery:

    //  Действие при клике на общий чекбокс
    $( 'input#checkall' ).on( 'change', function() {
      let val = $( this ).prop( 'checked' );  //  значение общего чекбокса
      $( this ).closest( 'table' ).find( 'input[type=checkbox]:not(#checkall)' ).prop( 'checked', val );  // всем остальным чекбоксам присваиваем то же значение
    }
    
    //  Действие при изменении чекбокса каждой строки (кроме строки заголовков)
    $( 'input[type=checkbox]:not(#checkall)' ).on( 'change', function() {
      $( this ).closest( 'tr' ).toggleClass( 'selected' );  // включаем или выключаем класс selected у всей строки
    }
    
    //  Действие при клике по другим ячейкам строки = клику по чекбоксу (если это надо)
    $( 'tr:gt(0) td:gt(0)' ).on( 'click', function() {
      let cb = $( this ).find( 'input' );   // чекбокс пригодится
      let newVal = !cb.prop( 'selected' );  // инвертированное значение чекбокса
      cb.prop( 'selected', val );  //  присваиваем инвертированное значение чекбоксу
    }
    Ответ написан
    Комментировать
  • Как вывести дату последнего логина пользователя на страницу?

    @Malazar
    Создай таблицу ещё по мимо id, username, email и password где будет храниться время. И выводи его оттуда и всё
    Ответ написан
    Комментировать
  • Как вывести дату последнего логина пользователя на страницу?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Ну так сохраняйте время входа в базу и выводите его оттуда
    Ответ написан
    2 комментария
  • Как найти общие подстроки в нескольких строках на JavaScript?

    @DanKud
    var arr = [ /* массив со строками */
    	'THREE',
    	'DIFFERENT',
    	'LINES'
    ]
    
    function compare(inStr, cStr) { /* фукнция сравнения двух строк на наличии одинаковых символов */
    	var result = inStr.split('').filter(function(letter) {
    	  return (cStr.indexOf(letter) > -1);
    	});
    	return result;
    }
    
    for (i = 0; i < (arr.length-1); i++) { /* перебираем циклом строки из массива */
    	var result = (i == 0) ? compare(arr[i], arr[i+1]) : compare(result.join(''), arr[i+1]);
    }
    
    var finalStr = result.join(''); /* преобразуем полученный массив в строку */
    
    /* если нужно убрать повторяющиеся символы используем нижеприведенный метод для вывода результата
    var finalStr = Array.from(new Set(result)).join('');
    */
    
    alert(finalStr);
    Ответ написан
    1 комментарий
  • Как найти общие подстроки в нескольких строках на JavaScript?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Прямой поиск:
    И обратный поиск:
    Ответ написан
    2 комментария
  • Как найти общие подстроки в нескольких строках на JavaScript?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Есть более простое (алгоритмически) решение.
    Общая суть его такова, вместо построения матрицы N1 x N2 делаем последовательный сдвиг меньшей строки относительно большей (1 цикл длинной N1+N2-2). На каждой итерации этого сдвига делаем второй цикл через текущую область пересечения этих строк, подсчитывая совпадения символов и запоминая их, если число совпадений больше предыдущего. Так же время выполнения такого алгоритма будет не O(Nmax*Nmin) а O(Nmax*Nmin -Nmin)

    Если не поленюсь, оформлю с утра в виде кода)

    PS: Заставляете не полениться:) Для поддержки поиска по строкам в количестве больше 2-х алгоритм был несколько модифицирован. Для удобства понимания почти не использовал "особые фишки" JavaScript-а, все выполнено на обычных циклах.
    код с комментариями

    function search_largest_substr(){
    	/*
    	Наибольшая общая строка не может 
    	быть больше наименьшей входной строки.
    	Находим наименьшую и по ходу формируем
    	массив с остальными:
    	*/
    
    		// в эту переменную внесем самую маленькую подстроку
    		let str_min = arguments[0];
    		// сюда сложим все остальные подстроки
    		const list = [];
    		
    		// пробежим в цикле по всем переданным в функцию аргументам
    		for(let n=1; n<arguments.length; n++){
    			// если строка в str_min меньше чем в
    			if(str_min.length<arguments[n].length){
    				// вносим в list текущую строку
    				list.push(arguments[n]);
    				// переходим к следующей итерации цикла
    				continue;
    			}
    
    			// иначе в list строку, лежащую в str_min
    			list.push(str_min);
    			// запоминаем в str_min текущую строку
    			str_min = arguments[n];
    		}
    
    	/*
    	Далее нам надо проверить наличие всех возможных
    	подстрок из самой маленькой строки в других строках.
    	Например если самая маленькая подствока была "abcd"
    	то надо последовательно проверить 
    	"abcd", "abc", "bcd", "ab", "bc", "cd", "a", "b", "c", "d"
    	Но при этом, как только будет найдена подстрока имеющаяся
    	во всех строках надо сразу завершить цикл с проверкой.
    	*/
    		// Данный цикл будет определять текущий размер 
    		// проверяемой подстроки, начиная от наибольшего возможного.
    		// Например для строки "abcd" это будут значения 4, 3, 2, 1
    		for(let l=str_min.length; l>0; l--){
    
    			// В данном цикле определяем позицию подстроки.
    			// Например для строки "abcd" это будут значения:
    			// при l=4 будут 0
    			// при l=3 будут 0, 1
    			// при l=2 будут 0, 1, 2
    			// при l=1 будут 0, 1, 2, 3
    			for(let p=0; p<=str_min.length-l; p++){
    				// берем из наименьшей строки тестируемую подстроку
    				const substr = str_min.slice(p, p+l);
    
    				// если искомый фрагмент есть во всех строках
    				// то isFound будет присвоено true
    				let isFound = true;
    
    				// далее в цикле проверяем все остальные строки 
    				// на наличие искомой подстроки
    				for(let i=0; i<list.length; i++){
    					// если искомая подстрока присутствует в
    					// текущей строке - ничего не делаем
    					if(	list[i].indexOf(substr) >= 0)
    						continue;
    
    					// иначе выставляем isFound=false 
    					// и прерываем текущий цикл по i
    					isFound=false;
    					break;
    				}
    
    				// если isFound == true значит нужная подстрока найдена
    				if( isFound )
    					return substr;
    
    				// иначе продолжаем поиск
    			}
    		}
    
    		// если не было найдено ни единой соврадающей подстроки
    		// возвращаем пустую строку
    		return "";
    }
    
    
    // Исползуем функцию поиска так:
    var str = search_largest_substr("ABCDEFGH", "ABCDEFG", "ABCDEF");
    console.log(str);
    
    
    str = search_largest_substr("123445", "12654", "123768");
    console.log(str);


    Ответ написан