 
			
				19.02.2015, 14:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 kiberchainik, 
 function updateSelect(event) { event.preventDefault() 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.02.2015, 14:07
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2015 
					
					
					
						Сообщений: 43
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		я пойду с самого начала и по порядку... 
1 есть хтмл
 
<select name="filter" id="listFilter">
                    <option value="0" style="color: gray;">Seleziona...</option>
                    <?=$query->selectFiltri()?>
                </select>
<a href="?do=updateselect" onclick="updateSelect();return false"><img src="/ad/img/refresh.png" title="Обновить список" class="icon" /></a>
по логике если я верно ее понимаю, после клика на ссылку рефреш мы отправляемся в этот скрипт
 
function updateSelect() {
    Query.ajax ({
        type:html,
        url:post.php,
        success:function(response) {
            alert(response);
        }
    });
}
а он от себя посылает нас в файл пост.пхп где есть вот это чудо
 
if ($_GET['do'] == "updateselect") {
        
        $query->selectFiltri();
    }
с этого файла, это самое чудо запускает функцию из класса обработчика в котором описано следующее заклинание 
 
function selectFiltri() {
            $this->Connect();
            
            $select = mysql_query("select seo_name from filtri");
            $arraySel = mysql_fetch_array($select);
            $num = mysql_num_rows($select);
            
            if ($num == "0") {
                echo"Фильтров еще нет";
            } else {
                do {
                    echo "<option value='".$arraySel['seo_name']."'>".$arraySel['seo_name']."</option>";
                } while ($arraySel = mysql_fetch_array($select));
            }
        }
вот от всей этой волшебной сказки я ожидал результата а его нет!  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.02.2015, 15:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Перепишите этот, слов нет назвать классом, так: 
$select = mysql_query("SELECT uid, seo_name FROM filter");
if($selec) {
    if(mysql_num_rows($select)) {
         while ($r = mysql_fetch_object($select)) $opt .= '<option value="'.$r->uid.'">'.$r->seo_name.'</option>';
         echo $opt; 
    } else //вывод сообщения об отсутствии записей в базе, и это должно как-то определяться в рамках единого диалога
} else //действие - ошибка запроса
Пояснение о uid. Ваш список в качестве и текста опций, и их значений использует одно и тоже - текст seo_name. Это не смертельно, но и не лучшее, что можно придумать. Я не знаю назначение вашего списка, но обычно такие вещи как-то связаны с другими таблицами, где этот список используется. И такая связь зачастую осуществляется посредством ID - уникальных идентификаторов. Уникальность достигается полем с автоинкрементом. Вот в моем запросе я как бы подразумеваю, что такой идентификатор есть и у вашего списка, именно его значение будет иметь опции в качестве значений, а не строки описания этого списка. Можете это удалить, но обдумайте прежде хорошо структуру своих данных.
 
Как вставить этот html я уже показывал, а если не получается, то проверяйте запросы, передается ли $_GET['do'] == "updateselect", GET ли метод у вашего запроса и т.п.
 
PS. Тут тема уже не поянть что к чему ) Как в массив строки из базы, а не в html? Вместо этого:
 
while ($r = mysql_fetch_object($select)) $opt .= '<option value="'.$r->uid.'">'.$r->seo_name.'</option>';
         echo $opt;
это:
 
while ($r = mysql_fetch_assoc($select)) $opt[] = $r;
         echo json_encode($opt);
Если скрипт пишется под РНР версию не ниже 5.4, то можно использовать опцию JSON_UNESCAPED_UNICODE в json_encode().  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 19.02.2015 в 16:41.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.02.2015, 16:33
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2015 
					
					
					
						Сообщений: 43
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	
		Перепишите этот, слов нет назвать классом, так: 
 
$select = mysql_query("SELECT uid, seo_name FROM filter");
if($selec) {
    if(mysql_num_rows($select)) {
         while ($r = mysql_fetch_object($select)) $opt .= '<option value="'.$r->uid.'">'.$r->seo_name.'</option>';
         echo $opt; 
    } else //вывод сообщения об отсутствии записей в базе, и это должно как-то определяться в рамках единого диалога
} else //действие - ошибка запроса
 
 
Пояснение о uid. Ваш список в качестве и текста опций, и их значений использует одно и тоже - текст seo_name. Это не смертельно, но и не лучшее, что можно придумать. Я не знаю назначение вашего списка, но обычно такие вещи как-то связаны с другими таблицами, где этот список используется. И такая связь зачастую осуществляется посредством ID - уникальных идентификаторов. Уникальность достигается полем с автоинкрементом. Вот в моем запросе я как бы подразумеваю, что такой идентификатор есть и у вашего списка, именно его значение будет иметь опции в качестве значений, а не строки описания этого списка. Можете это удалить, но обдумайте прежде хорошо структуру своих данных. 
 
Как вставить этот html я уже показывал, а если не получается, то проверяйте запросы, передается ли $_GET['do'] == "updateselect", GET ли метод у вашего запроса и т.п.
	 | 
 
	
 
 спасибо за помощь, нужно перехватить это и заменить этим ду и вайл))) самого достали )) и да в таблице id есть, в общем спасибо буду пробовать  
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.02.2015, 23:46
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2015 
					
					
					
						Сообщений: 43
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		все правки сделаны, работать работает а вот обновлять без перезагрузки хоть убей не хочет ((( 
function updateSelect(event) {
    event.preventDefault();//отмена действия клик    
    Query.ajax ({
        type:'html',        
        url:'post.php',
        success:function(response) {
            $("#listFilter").html(response);
        }
    });
}
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				20.02.2015, 02:26
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Работает что и как вы определили это, если перегружается, а не должно? 
 
Вам показывали два способа предотвращения действия по умолчанию элемента и вы их кучей используете, а не работает? Самый правильный же, это выбросить тег А из кода, в данном случае он вообще не к месту. 
Для чего он у вас? Для хранения "do=updateselect"? Ну вроде бы как список у вас один, параметр запроса ключ-значение вам никто не мешает прописать сразу в методе .ajax(). Может потому, что при теге А "красивую ручку" курсор имеет? Открываем CSS и прописываем классу icon стиль курсора pointer, и :hover тоже не проблема. 
 
Выбрасывайте и проверяйте, будут ошибки теперь, анализируйте их, иначе гадание. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				20.02.2015, 10:21
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2015 
					
					
					
						Сообщений: 43
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	
		Работает что и как вы определили это, если перегружается, а не должно? 
 
Вам показывали два способа предотвращения действия по умолчанию элемента и вы их кучей используете, а не работает? Самый правильный же, это выбросить тег А из кода, в данном случае он вообще не к месту. 
Для чего он у вас? Для хранения "do=updateselect"? Ну вроде бы как список у вас один, параметр запроса ключ-значение вам никто не мешает прописать сразу в методе .ajax(). Может потому, что при теге А "красивую ручку" курсор имеет? Открываем CSS и прописываем классу icon стиль курсора pointer, и :hover тоже не проблема. 
 
Выбрасывайте и проверяйте, будут ошибки теперь, анализируйте их, иначе гадание.
	 | 
 
	
 
 я с Вами согласен и это знаю, и метод отмены клика я так же делал, селект не обновлялся все равно, я не знаю как обратиться к обработчику без тега а, т.е. я думаю сделать так... 
 
<img src="/ad/img/refresh.png"onclick="updateSelect();return false;" title="Обновить список" class="icon" />
 
function updateSelect() {   
    $.get ({
        type:'html',        
        url:'post.php?do=update',
        success:function(response) {
            $("#listFilter").html(response);
        }
    });
}
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				20.02.2015, 10:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Нет не знаете, вы копируете то, что вам пишут, но вряд ли анализируете это. Вот попробуйте перейти по этой ссылке: 
	
 
	| 
		 Код: 
	 | 
 
	<a href="http://javascript.ru/forum/" onclick="return false">GO</a>  | 
 
	
 
 
Здесь return false не позволяет тегу А действие по умолчанию, а что у него является действием по умолчанию - переход по url. А какое у изображения действие по умолчанию? Да никакого, вы можете ногами его топтать, а не только щелкать, но перехода по url он не совершит, нет по умолчанию у него такой задачи, и return false для него не к чему.
 
Читайте  здесь еще, пробуйте, будете задумываться над тем, что делаете, обязательно будет работать.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 20.02.2015 в 11:05.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				24.02.2015, 13:49
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2015 
					
					
					
						Сообщений: 43
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	
		Нет не знаете, вы копируете то, что вам пишут, но вряд ли анализируете это. Вот попробуйте перейти по этой ссылке: 
	
 
	| 
		 Код: 
	 | 
 
	<a href="http://javascript.ru/forum/" onclick="return false">GO</a>  | 
 
	
 
 
	 | 
 
	
 
 здравствуйте, помогите еще вот с таким вопросом  Не загружается селект через ajax
там уже несколько другая идея, с прошлым вопросом разобрался!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				24.02.2015, 14:54
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2015 
					
					
					
						Сообщений: 43
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		большое спасибо я разобрался можно закрыть тему )))   
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |