Javascript.RU

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

Активация кнопки/ссылки после проверки условия
Добрый день.
Сайт на joomla, подобных плагинов и модулей не нашел, поэтому пришлось обратится к кодам и скриптам. Сам я с Явой не знаком, но давно программировал на паскале, общее нашел, но не очень хотелось бы ради этого изучать, но если придется, то покопаюсь. Но надеюсь, что подскажете правильный код.

Планирую сделать так: текст, поле ввода и кнопка. Если правильно введено значение в поле ввода, то при нажатии на кнопку человек должен скачать файл или должно выйти окошко со ссылкой. Если не правильно ввел, то сообщение об этом.

Делаю это, для доступа к своим роликам детским садам, школам. То есть будет написано. Дет сад №1. Что бы скачать ролик, введите имя отчество воспитателя. И человек не может скачать, пока не введет Мария Ивановна (например).

Я параметров всех и синтаксиса не знаю. Представление имею о программировании (давно занимался), но вот слишком уж Скрипт отличается от паскаля какого нибудь, в том и загвоздка.
Понимаю, что знающему человеку на 3 минуты этот код написать.

Задать переменную или константу и присвоить ей текст/пароль "Мария Ивановна". Сделать проверку при нажатии на кнопку, если введенное в поле значение соответствует, то открыть окно со ссылкой, если фальшиво, то открыть окно с текстом "попробуй еще раз".

Буду очень благодарен, если не отправите меня изучать яву)))

Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2014, 08:49
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Если тебе нужна защита от дурака то можно все это сделать в js:

<div>
<label>Введите имя и отчество чтобы скачать файл</label>
<input type="text" data-val="Иван Иванович">//как видим правильный ответ через консоль посмотреть не составляет труда, однако у нас некоторые js-писатели не знают что такое консоль, что уж об остальных говорить.
<button>Скачать</button>
</div>

//код с подключенной библиотекой jquery

$('button').click(function(){
    if($(this).prev().val() == $(this).prev().data('val')) {
       //и вот тут уже скачка.например редирект на страницу со ссылкой
       location.href = '/some/url/download/';

    }
else {
   //либо редирект на страницу ошибки, как выше, либо модальный диалог на этой же странице,либо просто вставить текст ниже кнопки с отказом..много вариантов
}
})


Если, не от дурака - то делать запрос к серверу, на сервере сверять значения, и в зависимости от результат давать скачку или нет.

Последний раз редактировалось krasovsky, 04.06.2014 в 08:53.
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2014, 11:25
Новичок на форуме
Отправить личное сообщение для Cardan Посмотреть профиль Найти все сообщения от Cardan
 
Регистрация: 04.06.2014
Сообщений: 5

Спасибо. Подойдет и от "дурака"))) Не секретные файлы. Только без подключения библиотеки jquery нельзя? Или как это сделать.
Боюсь не одолею подключение.

Последний раз редактировалось Cardan, 04.06.2014 в 11:28.
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2014, 12:15
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

<div>
<label>Введите имя и отчество чтобы скачать файл</label>
<input id="teacher-name" type="text" data-val="Иван Иванович">
<button id="btn-to-download">Получить ссылку</button>
<div id="link-to-download" style="display:none"><a href="">ссылка на файл</a></div>
</div>
<script>
document.querySelector('#btn-to-download').onclick = function() {
var field = document.querySelector('#teacher-name').value,
name = document.querySelector('#teacher-name').dataset.val;
if (field == name) document.querySelector('#link-to-download').style.display = 'block';
else alert('Неправильное имя отчество');
};
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2014, 12:31
Новичок на форуме
Отправить личное сообщение для Cardan Посмотреть профиль Найти все сообщения от Cardan
 
Регистрация: 04.06.2014
Сообщений: 5

Все просто супер, все работает идеально!
Но, одна проблема. У меня на странице несколько ссылок должно быть для разных заведений, соответственно с разными кнопками на скачивание и разными паролями.
Попробовал скопировать код еще раз, но тогда первый работает, а второй нет.
Можно, для нескольких файлов такой код сделать? Спасибо, вы очень помогаете.
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2014, 13:00
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

<div>
	<label>Введите имя и отчество чтобы скачать файл</label>
	<input class="teacher-name" type="text" data-val="Иван Иванович" data-link="http://javascript.ru/forum/image.php?u=14174&dateline=1380803229">
	<button class="btn-to-download">Получить ссылку</button>
</div>
<div>
	<label>Введите имя и отчество чтобы скачать файл</label>
	<input class="teacher-name" type="text" data-val="Федор Кузмич" data-link="http://javascript.ru/forum/image.php?u=14174&dateline=1380803229">
	<button class="btn-to-download">Получить ссылку</button>
</div>
<script>
var forms = document.querySelectorAll('.btn-to-download');
for (var i = 0; i < forms.length; i++) {
	forms[i].onclick = function() {
		var wrap = this.parentNode;
		if (wrap.querySelector('.link-to-download')) return;
		var field = wrap.querySelector('.teacher-name');
		var inputName = field.value,
			name = field.dataset.val,
			link = field.dataset.link;
			
		if (inputName == name && link) {
			var div = document.createElement("div");
			div.className = 'link-to-download';
			div.innerHTML = '<a href="' + link + '">ссылка на файл</a>';
			wrap.appendChild(div);
		} else alert('Неправильное имя отчество');
	};
}
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2014, 13:12
Новичок на форуме
Отправить личное сообщение для Cardan Посмотреть профиль Найти все сообщения от Cardan
 
Регистрация: 04.06.2014
Сообщений: 5

Огромное спасибо! То, что нужно. Лучший форум и лучшие люди! Очень помогли. Буду использовать этот код.
Но все же спрошу. Пароль явно видно, тем же Firebug. Можно ли его как то зашифровать, например base64. Хотя бы как то с глаз убрать немного. Если это сложно, то и ладно, не критично. А если не очень трудоемко, то хотя бы подскажите в какую сторону копать.
Спасибо.

Последний раз редактировалось Cardan, 04.06.2014 в 16:53.
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2014, 06:57
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Зашифровать, понятия не имею как. Убрать - ну можешь засунуть куда нибудь в дебри html, но тогда придется и код изменить.
А вообще врядли кто то полезет в консоль
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2014, 09:41
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Cardan
Можно ли его как то зашифровать, например base64.
Можно, чего ж нет. Вот здесь можете взять функцию decode64().
Зашифровывать можно функцией encode64(), форма для зашифровки там закомментирована.
Ответить с цитированием
  #10 (permalink)  
Старый 11.06.2014, 18:08
Новичок на форуме
Отправить личное сообщение для Cardan Посмотреть профиль Найти все сообщения от Cardan
 
Регистрация: 04.06.2014
Сообщений: 5

Огромное спасибо вам еще раз. Все сделал, все довольны)))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как присвоить класс элементу после проверки cookies Round jQuery 20 17.10.2013 08:47
Выполнение проверки после наступления события juggalo Events/DOM/Window 6 06.10.2012 00:37