Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.12.2016, 13:24
Новичок на форуме
Отправить личное сообщение для sentance Посмотреть профиль Найти все сообщения от sentance
 
Регистрация: 11.07.2016
Сообщений: 7

Автозамена строки в форме
Задача. Необходимо с ссылки автоматически добавлять значение в форму. К примеру. Клиент заходит на сайт с формой по ссылке http://test.com/forma?email=trest@gmail.com

И автоматически в форме заполняется значение email(trest@gmail.com)
Нашёл решение для WP
function faf_process_user() {
    if (location.search) {
        var URI = location.search;
	
        var parameter = URI.slice(1);
        var var_dict = {};
        var parameters = parameter.split("&");
        for (var i = 0; i < parameters.length; i++) {
            var temp = parameters[i].split("=");
            var_dict[temp[0]] = decodeURIComponent(decodeURIComponent(temp[1]));
        }
        var forms = document.getElementsByTagName('FORM');
        for (var k = 0; k < forms.length; k++) {
            var elements = forms[k].elements;
            for (i = 0; i < elements.length; i++) {
                if (elements[i].tagName || elements[i]) {
                    if (elements[i].id in var_dict ) {
                        elements[i].value = var_dict[elements[i].name];
                    } else if (elements[i].name in var_dict){
                        elements[i].value = var_dict[elements[i].id];
                    }
                }
            }
        }
    }
}
try {
    faf_process_user();
}
catch(err){}


Но почему-то вместо "trest@gmail.com" подставляется "undefined"
Буду очень признателен за ответ.
Ответить с цитированием
  #2 (permalink)  
Старый 01.12.2016, 13:28
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от sentance
Клиент заходит на сайт с формой по ссылке http://test.com/forma?email=trest@gmail.com

И автоматически в форме заполняется значение email(trest@gmail.com)
Серверный язык у тебя есть?
Используй его.
Практически все серверные языки умеют извлекать данные из объектов типа request и вставлять те данные в "тело" страницы.
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2016, 13:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

sentance, либо используй свойства объекта window.location
http://javascript.ru/window-location
Ответить с цитированием
  #4 (permalink)  
Старый 01.12.2016, 13:40
Новичок на форуме
Отправить личное сообщение для sentance Посмотреть профиль Найти все сообщения от sentance
 
Регистрация: 11.07.2016
Сообщений: 7

Мне б пример работающего кода)
Ответить с цитированием
  #5 (permalink)  
Старый 01.12.2016, 14:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от sentance
Мне б пример работающего кода)
А сам значит - фик?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
window.addEventListener('DOMContentLoaded', function() {
	var arr=window.location.search.slice(1).split('&');
	arr=arr[0].split('=');
	document.getElementById(arr[0]).value=arr[1];
});
</script>
</head>
<body>
<label>email
	<input id='email' type='text' />
</label>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 01.12.2016, 14:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

sentance, у моего примере защит нет.
УРЛ должен четко иметь всего одну переменную
<url>?email=trest@gmail.com
Ответить с цитированием
  #7 (permalink)  
Старый 01.12.2016, 16:43
Новичок на форуме
Отправить личное сообщение для sentance Посмотреть профиль Найти все сообщения от sentance
 
Регистрация: 11.07.2016
Сообщений: 7

Дружище, от души, Спасибо!) Помогло!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить пустые строки из textarea alerzo Общие вопросы Javascript 2 31.08.2015 09:53
Скрипт не работает на добавленные строки Гробовщик jQuery 2 20.02.2015 13:18
Проверка строки ввода логина в форме assessor Events/DOM/Window 17 13.11.2012 12:52
Запуск скрипта с адресной строки olga153b Events/DOM/Window 3 24.09.2012 11:34
Отфильтровать строки в таблице по заданным критериям Hag1989 Общие вопросы Javascript 0 03.12.2009 02:06