Javascript.RU

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

Передача выбранного значения select с помощью ajax
День добрый! Вопрос в следующем.
Есть список <select>, содержащий в себе наименования категорий. Изначально стоит задача получить выбранное значение из списка select и отправить его в качестве результата заполнения формы на сервер, чтобы впоследствии записать ее в переменную php и осуществить запрос к базе данных.
В интернетах нашлась функция, позволяющая отправлять выбранное значение поля select на сервер и возвращать полученное значение.


<script type="text/javascript">
		(function($){		
		function typeOfPage(){
		var page =$('select[name="category_name"]').val();
		$.ajax({
                type: "POST",
                url: "ajax.php",
                data: {page: page},
                           
                success: function(data) {
                             $('#ajax_reciever').html(data);
                            }
				});
				};
				  })(jQuery);
			</script>



ajax.php

<?php echo $_POST['page'].' '; ?>



HTML

<select id="category_id" name="category_name" class="inputbox" onchange='typeOfPage(); '>
//значения списка
</select>


Вопрос дурацкий, но сама разобрать не могу. Функция была обернута мной в (function($){...})(jQuery); так как это было решением проблемы с ошибкой: "Cannot call method 'val' of null". Теперь в консоли выдается ошибка: "Uncaught ReferenceError: typeOfPage is not defined", хотя описание функции прописано раньше в коде, чем ее вызов.

Последний раз редактировалось kefalia, 16.12.2013 в 14:42.
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2013, 16:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от kefalia
хотя описание функции прописано раньше в коде, чем ее вызов.
Ага, вот только она теперь не глобальная. Ее не видно снаружи (за пределами) функции (function($){})(jQuery)

Как быстрый фикс - объявлять функцию как свойство глобального объекта:
window.typeOfPage = function() {....


К слову, ради аякса и получения значения из селекта не нужно подключать jQuery. Гораздо лучше заменить на чистый js-код. Если же jQuery используется по-полной, то лучше ничего не менять.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение значения input при смене значения select galart jQuery 4 30.01.2015 19:39
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Загрузка страниц с помощью ajax radikal AJAX и COMET 3 29.11.2012 16:26
Отправка нескольких форм с помощью ajax voloxa89 jQuery 2 28.09.2011 22:08
Проверка наличия логина в БД при регистрации, с помощью ajax storng Общие вопросы Javascript 4 09.04.2010 20:24