Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2015, 13:55   #1
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию Помогите с разобраться

Добрый день, возникла проблема.

Необходимо, что бы в зависимости от get параметра, изменялось значение переменной. Значение переменной подставляется в url сайта.
Вот код:
Код:
if((isset($_GET['t_of_gorod'])))
				{	
					if($_GET['t_of_gorod']==0) 
						{
							$gorod='moskva';
						}
					elseif($_GET['t_of_gorod']==1)
						{
							$gorod='sankt-peterbugr';
						}
					elseif($_GET['t_of_gorod']==2)
						{
							$gorod='kazan';
						}
				}
				else { $gorod='no';}
Не пойму в чем ошибка, постоянно подставляет www.site.ru/no?t_of_gorod=0

Последний раз редактировалось Stilet; 23.11.2015 в 16:14.
Дамир193 вне форума Ответить с цитированием
Старый 23.11.2015, 14:42   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Куда «подставляет»?
Где код формирования ссылки?
Покажи весь скрипт.

Последний раз редактировалось Andkorol; 23.11.2015 в 15:11.
Andkorol вне форума Ответить с цитированием
Старый 23.11.2015, 15:45   #3
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

Код:
<form action="/" method="GET" id="actionship" style="margin:2em 0 0;">
				<input class="button" type="submit" value="" />
				<div class="poisk">
					<div class="vybor">
						<select class="vybor" id="target" ><? echo $sel;?></select>
						<div class="minibut"></div>
					</div>
					<div class="vybor_sferi">
						<? echo $t_of_work;?>
						<div class="minibut"></div>
					</div>
					<div class="vybor_gorod">
						<? echo $t_of_gorod;?>
						<div class="minibut"></div>
					</div>
					<input class="search1" type="text" name="likesearch" placeholder="Поиск..." value="<?echo $likesearch;?>"/>
					<div style="display:none;">
						<input type="text" name="sort_by" value="<?echo $sort_by1;?>">
						<input type="text" name="education_level" value="<?echo $education_level1;?>">
					</div>
				</div>
				<input class="button" id="srccc" type="submit" value="" />
			</form>

<script>
  $( "#target" ).change(function () {
    var str = "";
    $( "#target option:selected" ).each(function() {
      str += $( this ).val() + " ";
    });
	if(str==1)
	{
		$("#actionship").attr("action","/<?echo $gorod?>");
		
	}
	else
	{
		$("#actionship").attr("action","<?echo $gorod?>");
		
	}
  })
  .change();

</script>
Остальные переменные описаны, и форма работает без подставления

Последний раз редактировалось Stilet; 23.11.2015 в 16:14.
Дамир193 вне форума Ответить с цитированием
Старый 23.11.2015, 15:54   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Дамир193, на будущее, код в посте нужно выделять соответствующим тегами (Кнопки "#","<>" и "php" в редакторе (см. скрин)).
Кнопки Кода.PNG
Иначе, не потом обижайтесь, если выложенный Вами код не смогли разобрать.
Streletz вне форума Ответить с цитированием
Старый 23.11.2015, 15:56   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ты понимаешь значение словосочетания «весь скрипт»?
Из этих кусков пока я только вижу подстановку через js значения $gorod в атрибут action формы.
При этом нигде не видно, что это будет $_GET['t_of_gorod'].
Andkorol вне форума Ответить с цитированием
Старый 24.11.2015, 07:19   #6
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

Извиняюсь, не знал правила, первый раз тут.
Вот весь код.
PHP код:
<?
ini_set
("display_errors",1);
error_reporting(E_ALL);
include_once(
'functions.php');
generateCode($length=6);
# Соединямся с БД
mysql_connect("""""");
mysql_select_db("");


if(empty(
$keywords)) $keywords=$title;
if(empty(
$description)) $description=$title;
?>
Код HTML:
<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<title><?echo $title;?></title>
	
	<link rel="icon" href="/" type="image/x-icon" />
	<link rel="shortcut icon" href="/images/favicon.png" />
    <link type="text/css" rel="stylesheet" href="/css/style.css"/>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
	<script type="text/javascript">
					/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
					var disqus_shortname = 'jobrb'; // required: replace example with your forum shortname

					/* * * DON'T EDIT BELOW THIS LINE * * */
					(function() {
						var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
						dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
						(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
					})();
				</script>
		<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
	</head>
<body>

<div class="wrapper">
	
	<header>
		
		<div class="menu">
			
			
		</div>
Дамир193 вне форума Ответить с цитированием
Старый 24.11.2015, 07:24   #7
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

PHP код:
<?
        
list ($arr$send_id$send_login$send_password$type_of_client) = asd();
        echo 
$arr;
    
$t_o_w= array("Сфера деятельности""IT, компьютеры, интернет""Без опыта, подработка, стажировки, прочее""Бухгалтерия, кассовый учет""Врачи, фармацевты, медицинские работники""Дизайн, творческие профессии""Директора и руководители""Инженеры, проектировщики""Логистика, снабжение, перевозки, склад""Маркетинг, PR-служба""Менеджеры по персоналу, HR-служба""Образование, наука, тренинги""Охрана, служба безопасности, полиция""Повара, официанты, бармены, сомелье""Продавцы, менеджеры по продажам, торговые представители""Производство и строительство, рабочие специальности""Редакторы, журналисты, переводчики""Секретари, офис-менеджеры, операторы""Услуги для населения, персонал для дома, спорт""Финансы, экономика, аудит, банк""Юристы, коллекторы, приставы");
    
$sof= array("Москва","Санкт-Петербург""Казань");
    
$adress=$_SERVER['REQUEST_URI'];
    
$a1=explode('?'$adress);
    if(
$a1[0]=='/vacancy'){
        
$sel='<option value="1" selected>Вакансии</option><option value="2" >Резюме</option>';
    }
    elseif(
$a1[0]=='/resumes'){
        
$sel='<option value="1" >Вакансии</option><option value="2" selected >Резюме</option>';
    }
    else{
        
$sel='<option value="1" >Вакансии</option><option value="2">Резюме</option>';
    }
    
$t_of_work='<select class="vybor_sferi" name="t_of_work">';
        for (
$g 0$g <= 20$g++){
            if((isset(
$_GET['t_of_work'])) && ($_GET['t_of_work']==$g)) $t_of_work .='<option value="'.$g.'" selected>'.$t_o_w[$g].'</option>';
            else                        
$t_of_work .='<option value="'.$g.'">'.$t_o_w[$g].'</option>';
        }
    
$t_of_work .='</select>';
    
$t_of_gorod='<select class="vybor_gorod" name="t_of_gorod">';
        for (
$i 0$i <= 2$i++){
            if((isset(
$_GET['t_of_gorod'])) && ($_GET['t_of_gorod']==$i)) $t_of_gorod .='<option value="'.$i.'" selected>'.$sof[$i].'</option>';
            else                        
$t_of_gorod .='<option value="'.$i.'">'.$sof[$i].'</option>';
        }
    
$t_of_gorod .='</select>';
    if(isset(
$_GET['likesearch']))
    {
        
$likesearch=$_GET['likesearch'];
    }
    else
    {
        
$likesearch='';
    }
    if(isset(
$_GET['sort_by']))
    {
        
$sort_by1=$_GET['sort_by'];
    }
    else
    {
        
$sort_by1=0;
    }
    if(isset(
$_GET['education_level']))
    {
        
$education_level1=$_GET['education_level'];
    }
    else
    {
        
$education_level1=1;
    }
            if((isset(
$_GET['t_of_gorod'])))
                {    
                    if(
$_GET['t_of_gorod']==0
                        {
                            
$gorod='moskva';
                        }
                    elseif(
$_GET['t_of_gorod']==1)
                        {
                            
$gorod='sankt-peterburg';
                        }
                    elseif(
$_GET['t_of_gorod']==2)
                        {
                            
$gorod='k';
                        }
                }
                else { 
$gorod='no';}
            
#динамическая форма
?>
Код HTML:
	</script>
	
	</header>
	
	<div class="info">
		<a href="/"><div class="logologo"></div></a>
			<form action="/" method="GET" id="actionship" style="margin:2em 0 0;">
				<input class="button" type="submit" value="" />
				<div class="poisk">
					<div class="vybor">
						<select class="vybor" id="target" ><? echo $sel;?></select>
						<div class="minibut"></div>
					</div>
					<div class="vybor_sferi">
						<? echo $t_of_work;?>
						<div class="minibut"></div>
					</div>
					<div class="vybor_gorod">
						<? echo $t_of_gorod;?>
						<div class="minibut"></div>
					</div>
					<input class="search1" type="text" name="likesearch" placeholder="Поиск..." value="<?echo $likesearch;?>"/>
					<div style="display:none;">
						<input type="text" name="sort_by" value="<?echo $sort_by1;?>">
						<input type="text" name="education_level" value="<?echo $education_level1;?>">
					</div>
				</div>
				<input class="button" id="srccc" type="submit" value="" />
			</form>
		<div class="all_block">
				<!--<a href="#" class="extended_src">Расширенный поиск</a>-->
				<?locate_resume_or_vacancy($send_login, $send_password, $type_of_client);?>
			</div>
	</div>
	<div class="navigation">
		<? navigation($navigation);?>
	</div>
	
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
  $( "#target" ).change(function () {
    var str = "";
    $( "#target option:selected" ).each(function() {
      str += $( this ).val() + " ";
    });
	if(str==1)
	{
		$("#actionship").attr("action","/<?echo $gorod?>");
		
	}
	else
	{
		$("#actionship").attr("action","<?echo $gorod?>");
		
	}
  })
  .change();
</script>
Andkorol,поможешь?

Последний раз редактировалось Stilet; 04.12.2015 в 09:52.
Дамир193 вне форума Ответить с цитированием
Старый 24.11.2015, 21:00   #8
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

после условия
Код:
if((isset($_GET['t_of_gorod']))) 
                {
добавте вывод какой-нибудь и посмотрите входит ли он в него


вот тут вот:
Код:
if((isset($_GET['t_of_gorod']))) 
                {     
                    if($_GET['t_of_gorod']==0)  
                        { 
                            $gorod='moskva'; 
                        } 
                    elseif($_GET['t_of_gorod']==1) 
                        { 
                            $gorod='sankt-peterburg'; 
                        } 
                    elseif($_GET['t_of_gorod']==2) 
                        { 
                            $gorod='k'; 
                        } 
                } 
                else { $gorod='no';}
наверное проще бы было использовать тот же switch ну или в массив загнать и по индексу обратиться
CodeNOT вне форума Ответить с цитированием
Старый 25.11.2015, 00:47   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Дамир193 Посмотреть сообщение
Код:
else { $gorod='no';}
Не пойму в чем ошибка, постоянно подставляет www.site.ru/no?t_of_gorod=0
Я вот не уверен, что это правильно (я про $gorod='no';).
Раз уж у тебя значение этой переменной завязано на выбранных в форме городах – то дефолтное значение должно быть просто первым городом в списке (так, как форма отображается при самом первом вызове, без выбранных ранее параметров).
У тебя же в списке выбора городов нет такого варианта <option value="no">---</option> – значит, такое значение никогда не будет передано из этой формы.

Далее, если я правильно понял суть – нужно «на лету» изменять URL обработчика формы при изменении выбранного города в списке?
Это можно реализовать при помощи Javascript (событие onchange или .click()).

Таким образом:
– при первом вызове формы URL обработчика будет /moskva
– при изменении города в списке – мы через Javascript «на лету» меняем URL обработчика на соответствующий выбранному городу
Andkorol вне форума Ответить с цитированием
Старый 25.11.2015, 07:59   #10
Дамир193
Пользователь
 
Регистрация: 23.11.2015
Сообщений: 19
По умолчанию

А может поэтому не работает, только додумался.
если $_GET['t_of_gorod'] не существует, то $gorod = 'no';
И это условие выполняется сразу при формировании ответа сервера (не открытия страницы, а ранее).
И более это значение нигде не меняется в принципе. Отсюда вывод, в URL нет переменной 't_of_gorod' во время открытия страницы

P.S. Если есть возможность покажите как это будет выглядеть на js, не дружу с js особо
Дамир193 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться МаксMorfey Общие вопросы по Java, Java SE, Kotlin 1 21.12.2009 13:15
Помогите разобраться pashka Общие вопросы C/C++ 9 31.05.2009 00:37
Помогите разобраться в С++ saleens7 Общие вопросы C/C++ 5 09.01.2009 17:08
Помогите разобраться! Кот Microsoft Office Excel 3 14.08.2007 19:48