Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2015, 21:42
Аспирант
Отправить личное сообщение для malefikus13 Посмотреть профиль Найти все сообщения от malefikus13
 
Регистрация: 20.07.2015
Сообщений: 64

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

И так, имеется 3 импута - Фамилия, Имя, Отчество. Эти импуты имеют три версии самих себя же, вся разница лишь в ссылках страниц.

Необходимо получить часть urla и создать условие, при котором будет проверяться полученный кусок урла с вариантами, что у меня имеются (вот как выглядит нужный кусок урла ?type=1),а затем получить значения, что введет пользователь в эти импуты.

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

У меня имеется версия этого решения на PHP, но нужно перевести все это дело в JS

И так, вот отрывок версии на PHP

if (isset($_POST['search_button'])) {
		//$websearch_queries =['fl'=>'','email1'=>'','email2'=>'','tl' =>'', 'tl_soc'=>'', 'tl_ya'=>''];
		//проверяем есть ли в урле ?type=1
		if($type==1){

// создаем переменную и передаем в нее ФИО из полей ввода "input"

			$google_query1="(\"{$_POST['surname']} {$_POST['name']} {$_POST['otchestvo']}\") & ((site:adress1.ru) OR (site:adress2.ru) OR (site:adress3.ru) OR (site:adress4.net) OR (site:adress5.com) OR (site:adress6.ru) OR (site:adress7.ru) OR (site:adress8.ru) OR (site:adress9.org) OR (site:adress10.ru) OR (site:adress11.ru) OR (site:adress12.net) OR (site:adress13.kz) OR (site:adress14.ru) OR (site:adress15.ru))";
			$google_query2="(\"{$_POST['surname']} {$_POST['name']} {$_POST['otchestvo']}\") & ( \"параметр1\" OR \"параметр2\" OR \"параметр3\" OR \"параметр4\" OR \"параметр5\" OR \"параметр6\" OR \"параметр7\" OR \"параметр8\")";
			
// энкодим полученный массив 

			$google_query1=urlencode($google_query1);
			$google_query2=urlencode($google_query2);


// делаем ссылку для перехода.
			$websearch_queries['fl_FIO_soc_google']="https://www.google.ru/?gws_rd=ssl#q= {$google_query1}&newwindow=1&start=50";
			$websearch_queries['fl_FIO_google']="https://www.google.ru/?gws_rd=ssl#q= {$google_query2}&newwindow=1&start=50";



Вот пример наших imput'ов

<input style="width:100%;" type="text" name="surname" id="surname" value="">
<input style="width:100%;" type="text" name="name" id="name" value="">
<input style="width:100%;" type="text" name="otchestvo" id="otchestvo" value="">


Вот пример того, как я это вижу, но не могу реализовать.

// получаем часть строки из url'a и записываем ее в "searchAdress"
var searchAdress = location.search;

// создаем переменную "url" и передаем ей значение "searchAdress"
var url = searchAdress; 

// создаем переменную "lastName" и записываем в нее значение Фамилии из инпута "surname"
тут какая-то магия

// создаем переменную "firstName" и записываем в нее значение имени из инпута "name"
и тут какая-то магия

// создаем переменную "middleName" и записываем в нее значение отчества из инпута "otchestvo"
и снова какая-то магия

// создаем начальное условие
// не уверен что все правильно написал, так как часть взял просто из php что выше - 
if( 'url' == '?type=1' ) {
     
// создаем переменную и передаем в нее ФИО из полей ввода "input"
$google_query1="(\"{$_POST['surname']} {$_POST['name']} {$_POST['otchestvo']}\") & ((site:adress1.ru) OR (site:adress2.ru) OR (site:adress3.ru) OR (site:adress4.net) OR (site:adress5.com) OR (site:adress6.ru) OR (site:adress7.ru) OR (site:adress8.ru) OR (site:adress9.org) OR (site:adress10.ru) OR (site:adress11.ru) OR (site:adress12.net) OR (site:adress13.kz) OR (site:adress14.ru) OR (site:adress15.ru))";
			
$google_query2="(\"{$_POST['surname']} {$_POST['name']} {$_POST['otchestvo']}\") & ( \"параметр1\" OR \"параметр2\" OR \"параметр3\" OR \"параметр4\" OR \"параметр5\" OR \"параметр6\" OR \"параметр7\" OR \"параметр8\")";
			
    
// энкодим полученный массив 
$google_query1=urlencode($google_query1);
$google_query2=urlencode($google_query2);
    
    
//
$websearch_queries['FIO_google1']="https://www.google.ru/?gws_rd=ssl#q= {$google_query1}&newwindow=1&start=50";
$websearch_queries['FIO_google2']="https://www.google.ru/?gws_rd=ssl#q= {$google_query2}&newwindow=1&start=50";
}


форма по которой составляю ссылку для поисковика:

("Фамилия Имя Отчество") & ((site:adress1.ru) OR (site:adress2.ru) OR (site:adress3.ru) OR (site:adress4.net) OR (site:adress5.com) OR (site:adress6.ru) OR (site:adress7.ru) OR (site:adress8.ru) OR (site:adress9.org) OR (site:adress10.ru) OR (site:adress11.ru) OR (site:adress12.net) OR (site:adress13.kz) OR (site:adress14.ru) OR (site:adress15.ru))
И 
("Фамилия Имя Отчество") & ( "параметр1" OR "параметр2" OR "параметр3" OR "параметр4" OR "параметр5" OR "параметр6" OR "параметр7" OR "параметр8")


Буду очень благодарен за помощь! Еще раз, прошу прощения за нубство, но как-то не успел я еще всего охватить.
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2015, 21:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от malefikus13
("Фамилия Имя Отчество") & ((site:adress1.ru) OR (site:adress2.ru) OR (site:adress3.ru) OR (site:adress4.net) OR (site:adress5.com) OR (site:adress6.ru) OR (site:adress7.ru) OR (site:adress8.ru) OR (site:adress9.org) OR (site:adress10.ru) OR (site:adress11.ru) OR (site:adress12.net) OR (site:adress13.kz) OR (site:adress14.ru) OR (site:adress15.ru))
И куча до этого, все заменяется одним выражением - http_build_query($_POST).
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2015, 22:17
Аспирант
Отправить личное сообщение для malefikus13 Посмотреть профиль Найти все сообщения от malefikus13
 
Регистрация: 20.07.2015
Сообщений: 64

Сообщение от laimas Посмотреть сообщение
И куча до этого, все заменяется одним выражением - http_build_query($_POST).
Если я правильно понимаю, то http_build_query($_POST) позволяет слепить все в одну строчку - массив, верно?
Ответить с цитированием
  #4 (permalink)  
Старый 27.07.2015, 22:25
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Нет, данная функция не "слепляет" массив в строку, таким занимает implode(), а http_build_query() генерирует URL-кодированную строку запроса.
Ответить с цитированием
  #5 (permalink)  
Старый 27.07.2015, 22:27
Аспирант
Отправить личное сообщение для malefikus13 Посмотреть профиль Найти все сообщения от malefikus13
 
Регистрация: 20.07.2015
Сообщений: 64

Сообщение от laimas Посмотреть сообщение
Нет, данная функция не "слепляет" массив в строку, таким занимает implode(), а http_build_query() генерирует URL-кодированную строку запроса.
ага, понял. спасибо! Скажите, а в целом логика верна в моем случае? Или я что-то еще упускаю?
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2015, 22:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Я не вникал в логику, времени нет у меня сейчас, а вот куча лишнего в коде в глаза бросается сразу, а в чем ваша логика и чего вы хотите?
Ответить с цитированием
  #7 (permalink)  
Старый 27.07.2015, 22:29
Аспирант
Отправить личное сообщение для malefikus13 Посмотреть профиль Найти все сообщения от malefikus13
 
Регистрация: 20.07.2015
Сообщений: 64

и еще, если можно, подскажите пожалуйста по поводу получения введенных данных в инпут. Как их можно получить и записать в какую либо переменную?
Ответить с цитированием
  #8 (permalink)  
Старый 27.07.2015, 22:33
Аспирант
Отправить личное сообщение для malefikus13 Посмотреть профиль Найти все сообщения от malefikus13
 
Регистрация: 20.07.2015
Сообщений: 64

Сообщение от laimas Посмотреть сообщение
А не вникал в логику, времени нет у меня сейчас, а в чем ваша логика и чего вы хотите?
Аааа))) Понимаю. Если совсем коротко, то я просто хочу выхватить то, что введут в инпуты, приписать это дело в новые переменные и вставить в строчку урла к условиям, что у меня уже есть. На вторую часть вы уже ответили
Ответить с цитированием
  #9 (permalink)  
Старый 27.07.2015, 22:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от malefikus13
Как их можно получить и записать в какую либо переменную?
$varname = http_build_query($_POST) - это разве не запись в переменную? Собственно запись чего в какую либо переменную, это не есть обязательное условие при приеме данных. Вот когда пишут так:

$v = $_POST['name'];

и следом эта переменная используется, а далее по коду вообще не нужна, то это пустое занятие, с таким же успехом можно сразу использовать $_POST['name'], без посредников.

Ставится задача, под задачу пишется логика кода, вот эта логика и будет определять нужны ли будут переменные и какие. Так что суть вашего вопроса не совсем понятна.
Ответить с цитированием
  #10 (permalink)  
Старый 27.07.2015, 22:56
Аспирант
Отправить личное сообщение для malefikus13 Посмотреть профиль Найти все сообщения от malefikus13
 
Регистрация: 20.07.2015
Сообщений: 64

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

1. Нужно получить часть url и сделать проверку на соответствие полученного куска одному из трех условий.
получаю часть url таким образом:
var searchAdress = location.search;
var url = searchAdress;


2. Далее получаю введенные данные из инпутов.

3. Создаем условие на соответствие одному из трех вариантов, а именно (далее прилагаю полученные части из url):
?type=1
?type=2
?type=3

Если я все правильно сделал, то выглядит это так
if( 'url' == '?type=1' ) {
}


4. Генерируем ссылку, для перехода в поисковик вот по такой логике:
("Фамилия Имя Отчество") & ((site:adress1.ru) OR (site:adress2.ru) OR (site:adress3.ru) OR (site:adress4.net) OR (site:adress5.com) OR (site:adress6.ru) OR (site:adress7.ru) OR (site:adress8.ru) OR (site:adress9.org) OR (site:adress10.ru) OR (site:adress11.ru) OR (site:adress12.net) OR (site:adress13.kz) OR (site:adress14.ru) OR (site:adress15.ru))


Но как это делается, я уже догадался, благодаря Вашему ответу

5. Открываем полученную ссылку в новом окне.

Как - то так
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java-скрипт для поиска. 2oo Общие вопросы Javascript 25 11.12.2010 13:10
Подбор по параметрам для поиска в каталоге товаров(интерестная версия) dmi3y Ваши сайты и скрипты 5 25.12.2009 13:55
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12
Возможно ли получить данные из файла на сервере? sdff Общие вопросы Javascript 11 19.07.2008 20:48