Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 21.03.2017, 11:57   #1
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
Репутация: 10
По умолчанию Перенос данных между вкладками браузера.

Приветствую, господа программисты.
Задача: авторизация на сайтах из базы данных.
Имеется: таблица xlsx вида "ФИО" "Логин" "Пасс" "Сайт", jQuery модуль переводящий эту таблицу в html вид.
Нужно: добавить в конец каждой строки кнопку "подключить", далее открывается новая вкладка из "сайт" ячейки этой строки, в поля на открывшейся ячейке вводятся данные соответственно из ячеек "логин" и "пасс".
Так как знаний и каких либо практических умений в программировании у меня нет, всё чего я смог добиться, это копировать данные одной ячейки, которую сам укажу, типа [1, 1] (вторая строка, вторая ячейка).
Долго читая и думая, я понял что у кнопки нужно найти родительскую строку, а у той строки в массив собрать значения трёх чайлдов, и потом из этого массива выдёргивать значения. Но так и не смог осилить сие колдунство.
И еще понял что нельзя голым JS или jQuery перенести нужные данные на другую страницу без использования сторонних инструментов. Придётся делать расширение для браузера?
Использовать куки?
Использовать адресную строку?
Буду благодарен за примеры
4eSlavich вне форума   Ответить с цитированием
Старый 23.03.2017, 07:08   #2
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
Репутация: 10
По умолчанию

Понял, задача сильно сложная. Давайте разделим на подпункты. Начнем с первого.
Есть таблица без каких либо идентификаторов типа классов или айдишников.
Код:

<table>
	<tr>
		<td>login_1</td>
		<td>pass_1</td>
		<td>site_1</td>
		<td><input type="button" value="connect"/></td>
	</tr>
	<tr>
		<td>login_2</td>
		<td>pass_2</td>
		<td>site_2</td>
		<td><input type="button" value="connect"/></td>
	</tr>
	<tr>
		<td>login_3</td>
		<td>pass_3</td>
		<td>site_3</td>
		<td><input type="button" value="connect"/></td>
	</tr>
</table>

Так вот первой задачей нужно чтобы на клик по кнопке, функция поняла в какой она строке находится, вытащила оттуда значения первой, второй и третьей ячеек, и запихала их в массив.
К сожалению моих навыков оказалось слишком мало, и я могу вытащить значения только из указанной ячейки, либо на все кнопки будет отрабатываться только первая строка.
4eSlavich вне форума   Ответить с цитированием
Старый 23.03.2017, 10:25   #3
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,300
Репутация: 2795

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

А что мешает дописать идентификаторы?
Непонятно ж даже как сами кнопки найти, чтоб повесить обработчик клика.

А остальное как раз просто.
Если jQuery, то
Код:

$('input[value="connect"]').click(function() {
    var cells = $(this).closest('tr').children();
    var login = cells.eq(0).text();
    alert(login);
});

Alex11223 вне форума   Ответить с цитированием
Старый 23.03.2017, 10:34   #4
Arigato
СуперПрограммист
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Адрес: Россия РФ Регистрация: 27.07.2008
Сообщений: 14,015
Репутация: 3525
По умолчанию

Не совсем понял, что вы хотите. Но отдельные вкладки это по сути отдельные окна. Чтобы отправить форму или ссылку на новую вкладку, надо добавить атрибут target="_blank". Если хотите в будущем иметь доступ к DOM этого окна, то в качестве значения надо дать какое-то имя, например: target="myNewWindow". Далее через JS можно будет обратиться к окну по его имени.
__________________
E-Mail: arigato.freelance@gmail.com
Arigato вне форума   Ответить с цитированием
Старый 23.03.2017, 10:37   #5
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А что мешает дописать идентификаторы?
Непонятно ж даже как сами кнопки найти, чтоб повесить обработчик клика.
Мешает то, что таблица генерируется сторонним модулем из xlsx файлика.

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А остальное как раз просто.
Если jQuery, то
Код:

$('input[value="connect"]').click(function() {
    var cells = $(this).closest('tr').children();
    var login = cells.eq(0).text();
    alert(login);
});

Вот такое как вам?
Код:

<script>
	$('input[type=button]').click(function(e){
		var login, pass, site;
		login = $(this).parent().parent().find('td:eq(0)').html();
		pass = $(this).parent().parent().find('td:eq(1)').html();
		site = $(this).parent().parent().find('td:eq(2)').html();
		console.log(login, pass, site);
	});
</script>

Работать работает, но в купе с тем самым модулем - не очень))) Может что исправить стоит?
4eSlavich вне форума   Ответить с цитированием
Старый 23.03.2017, 10:41   #6
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,300
Репутация: 2795

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Не очень что?
Это ж и есть почти тоже самое что у меня, только с лишними запросами поиска элементов.
И элементов с type=button может быть много на странице, по value наверно безопаснее.
Alex11223 вне форума   Ответить с цитированием
Старый 23.03.2017, 10:42   #7
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Чтобы отправить форму или ссылку на новую вкладку, надо добавить атрибут target="_blank".
Вся беда в том, что мне не форму нужно отправить, а только некоторые значения из таблицы в нужные поля.Скажем имеется три сайта с формой логина и пароля, но на первом сайте они имеют айдишники "log" и "pas", на втором "login" "password", а на третьем у программиста воображение разыгралось, и он кулаками им сгенерировал айди. Форму при таких условиях будет трудно отправить, если я правильно соображаю что к чему
4eSlavich вне форума   Ответить с цитированием
Старый 23.03.2017, 10:44   #8
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Не очень что?
Это ж и есть почти тоже самое что у меня, только с лишними запросами поиска элементов.
И элементов с type=button может быть много на странице, по value наверно безопаснее.
Не очень работает, то бишь вообще не работает. Есть у меня подозрение что где-то уже написан подобный обработчик на input, из-за чего и не работает.

Про value пожалуй солидарен, не дошло до самого.
Решилась проблема вот так:
Код:

function bindBtnClick(){
       $('input[value="connect"]').click(function(e){
	        var cells = $(this).closest('tr').children();
                var login = cells.eq(4).text();
                var pass = cells.eq(5).text();
                var site = cells.eq(3).text();
                console.log(login, pass, site);
            });
}

Теперь осталось перенести значения "логин" и "пасс" в соответствующие поля на другой вкладке. По мере поступления проблем и решений буду отписывать.

Последний раз редактировалось 4eSlavich; 23.03.2017 в 13:00. Причина: Решение найдено
4eSlavich вне форума   Ответить с цитированием
Старый 23.03.2017, 23:48   #9
Naive
Раздолбайских Дел
Профессионал
 
Аватар для Naive
 
Регистрация: 22.05.2009
Адрес: Екатеринбург
Сообщений: 3,571
Репутация: 1842
По умолчанию

https://learn.javascript.ru/iframes — это к теме в целом.
Естественно, ты кроме как GET-запросом не сможешь передать в другую вкладку данные. Ты не сможешь управлять другой вкладкой, если она на другом домене (там тупо нужно принимать сообщения с твоей вкладки с разрешения твоего домена).
Ниодин адекватный программист не позволит GET-ом передавать данные авторизации, даже на https.
Так что то, что ты хочешь, делается через написание своего плагина к браузеру.
__________________
ridero.ru — создайте настоящую книгу
Жду ваши искренние спасибы на яндекс-кошелек: 410011068154587
Naive вне форума   Ответить с цитированием
Старый 24.03.2017, 07:09   #10
4eSlavich
Пользователь
 
Регистрация: 21.03.2017
Сообщений: 16
Репутация: 10
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Так что то, что ты хочешь, делается через написание своего плагина к браузеру.
Да, именно этим я чичас и пытаюсь заняться, проблема в том что как JS и jQ, так и там для меня - тёмный лес Пытаюсь что-то понять

В общем и целом, ежели я правильно понял, обмен информацией между страницами возможен двумя способами:
- фоновая страница
- event-страница

Теперь жду того славного момента, когда до меня дойдёт как отправить информацию на фоновую или event страницы, и как её оттуда вытащить.

Последний раз редактировалось 4eSlavich; 24.03.2017 в 09:33. Причина: Курение манов
4eSlavich вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос данных между таблицами Обыватель Microsoft Office Excel 7 25.10.2013 11:08
Управление вкладками браузера Aleskandr JavaScript, Ajax 0 28.01.2013 10:39
Импорт (перенос) данных между двумя базами reihtmonbern Помощь студентам 1 11.11.2011 13:24
Перенос данных между таблицами в разных базах. Volodq БД в Delphi 3 27.05.2011 11:54
MySQL перенос данных между базами данных с MyDAC Nikolay88 БД в Delphi 3 14.05.2011 00:17




07:56.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru