Javascript.RU

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

Проблемка с селектом
Возникла проблемка, пытаюсь передать данные с формы в php-обработчик, все вроде хорошо, но какой бы селект я не выбирал в обработчик передается всегда самый первый.
<select name="order" id="order">

<option value="1">1</option>

<option value="2">2</option>

<option value="3">3</option>

</select>


$.ajax({
url: "mail.php",
type: "POST",
 data: {
 "order":$('#order option:selected').val(),
"name":$('#name').val(),
"adress":$('#adress').val(),
"advert":$('#advert').val(),
"phone":$('#phone').val()
 },
success: function(data){
lert('Ваша заявка отправлена!');
}
});


Подскажите кто знает как решить проблему
Ответить с цитированием
  #2 (permalink)  
Старый 25.08.2013, 11:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от middle
как решить проблему
Найчиться таки работать с JQ...

$('#order').val()
// а не
//$('#order option:selected').val()
Ответить с цитированием
  #3 (permalink)  
Старый 25.08.2013, 11:57
Новичок на форуме
Отправить личное сообщение для middle Посмотреть профиль Найти все сообщения от middle
 
Регистрация: 25.08.2013
Сообщений: 5

Пробовал, тоже самое
Ответить с цитированием
  #4 (permalink)  
Старый 25.08.2013, 12:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от middle
Пробовал, тоже самое
Тогда показывай полный пример, а не огрызки...
Ответить с цитированием
  #5 (permalink)  
Старый 25.08.2013, 12:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

middle, тестовый пример. В сайте колупаться забесплатно нет желания...
Ответить с цитированием
  #6 (permalink)  
Старый 25.08.2013, 12:29
Новичок на форуме
Отправить личное сообщение для middle Посмотреть профиль Найти все сообщения от middle
 
Регистрация: 25.08.2013
Сообщений: 5

<form action="#" method="post">
<select name="order" id="order">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button type="button" style="float:right" onclick="sendorder();">Заказать</button>
</form>

function sendorder() {
$.ajax({
url: "mail.php",
type: "POST",
 data: {
 "order":$('#order').val()

 },
success: function(data){
lert('Ваша заявка отправлена!');
}
});
}


mail.php:
<?
mail("mail@mail.ru", "Заказ с сайта", $_POST[order]);
?>


Какой бы пункт из селекта не выбрал, на почту приходит всегда самый первый.
Ответить с цитированием
  #7 (permalink)  
Старый 25.08.2013, 12:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от middle
Какой бы пункт из селекта не выбрал, на почту приходит всегда самый первый.
Бивас, тест!

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function sendorder() {
	alert($('#order').val())
	/*
	$.ajax({
		url: "mail.php",
		type: "POST",
		 data: {
		 "order":$('#order').val()

		 },
		success: function(data){
			lert('Ваша заявка отправлена!');
		}
	});
	*/
};
</script>
</head>
<body>
<form action="#" method="post">
	<select name="order" id="order">
		<option value="1">1</option>
		<option value="2">2</option>
		<option value="3">3</option>
	</select>
	<button type="button" style="float:right" onclick="sendorder();">Заказать</button>
</form>
</body>
</html>

Таки значения всегда соответствуют выбраным элементам. Т.ч. может не там смотришь?
Я в ПХП не силен...
Ответить с цитированием
  #8 (permalink)  
Старый 25.08.2013, 12:59
Новичок на форуме
Отправить личное сообщение для middle Посмотреть профиль Найти все сообщения от middle
 
Регистрация: 25.08.2013
Сообщений: 5

хм, интересно
На одном из форумов предлагали попробовать вместо .val() поставить .serialize(), тоже пришло order=первое значение.

в php нет ничего кроме mail функции, которая отправляет переменную $_POST[order]
Ответить с цитированием
  #9 (permalink)  
Старый 25.08.2013, 13:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от middle
lert
наверно
alert
Ответить с цитированием
  #10 (permalink)  
Старый 25.08.2013, 13:34
Новичок на форуме
Отправить личное сообщение для middle Посмотреть профиль Найти все сообщения от middle
 
Регистрация: 25.08.2013
Сообщений: 5

Вроде нашел, у меня стоит измененный вид селекта, меянется он при помощи js, подключается вот таким кодом:
$(document).ready(function(){
			$('.selectbox select').selectbox();
		});

Если этот код убрать, все становится нормально.

Работает этот код как я понял через файл, также подключенный к странице, вот этот файл:
jQuery.fn.selectbox = function(options){
	/* Default settings */
	var settings = {
		className: 'jquery-selectbox',
		animationSpeed: "normal",
		listboxMaxSize: 10,
		replaceInvisible: false
	};
	var commonClass = 'jquery-custom-selectboxes-replaced';
	var listOpen = false;
	var showList = function(listObj) {
		var selectbox = listObj.parents('.' + settings.className + '');
		listObj.slideDown(settings.animationSpeed, function(){
			listOpen = true;
		});
		selectbox.addClass('selecthover');
		jQuery(document).bind('click', onBlurList);
		return listObj;
	}
	var hideList = function(listObj) {
		var selectbox = listObj.parents('.' + settings.className + '');
		listObj.slideUp(settings.animationSpeed, function(){
			listOpen = false;
			jQuery(this).parents('.' + settings.className + '').removeClass('selecthover');
		});
		jQuery(document).unbind('click', onBlurList);
		return listObj;
	}
	var onBlurList = function(e) {
		var trgt = e.target;
		var currentListElements = jQuery('.' + settings.className + '-list:visible').parent().find('*').andSelf();
		if(jQuery.inArray(trgt, currentListElements)<0 && listOpen) {
			hideList( jQuery('.' + commonClass + '-list') );
		}
		return false;
	}
	
	/* Processing settings */
	settings = jQuery.extend(settings, options || {});
	/* Wrapping all passed elements */
	return this.each(function() {
		var _this = jQuery(this);
		if(_this.filter(':visible').length == 0 && !settings.replaceInvisible)
			return;
		var replacement = jQuery(
			'<div class="' + settings.className + ' ' + commonClass + '">' +
				'<div class="' + settings.className + '-moreButton" />' +
				'<div class="' + settings.className + '-list ' + commonClass + '-list" />' +
				'<span class="' + settings.className + '-currentItem" />' +
			'</div>'
		);
		jQuery('option', _this).each(function(k,v){
			var v = jQuery(v);
			var listElement =  jQuery('<span class="' + settings.className + '-item value-'+v.val()+' item-'+k+'">' + v.text() + '</span>');	
			listElement.click(function(){
				var thisListElement = jQuery(this);
				var thisReplacment = thisListElement.parents('.'+settings.className);
				var thisIndex = thisListElement[0].className.split(' ');
				for( k1 in thisIndex ) {
					if(/^item-[0-9]+$/.test(thisIndex[k1])) {
						thisIndex = parseInt(thisIndex[k1].replace('item-',''), 10);
						break;
					}
				};
				var thisValue = thisListElement[0].className.split(' ');
				for( k1 in thisValue ) {
					if(/^value-.+$/.test(thisValue[k1])) {
						thisValue = thisValue[k1].replace('value-','');
						break;
					}
				};
				thisReplacment
					.find('.' + settings.className + '-currentItem')
					.text(thisListElement.text());
				thisReplacment
					.find('select')
					.val(thisValue)
					.triggerHandler('change');
				var thisSublist = thisReplacment.find('.' + settings.className + '-list');
				if(thisSublist.filter(":visible").length > 0) {
					hideList( thisSublist );
				}else{
					showList( thisSublist );
				}
			}).bind('mouseenter',function(){
				jQuery(this).addClass('listelementhover');
			}).bind('mouseleave',function(){
				jQuery(this).removeClass('listelementhover');
			});
			jQuery('.' + settings.className + '-list', replacement).append(listElement);
			if(v.filter(':selected').length > 0) {
				jQuery('.'+settings.className + '-currentItem', replacement).text(v.text());
			}
		});
		replacement.find('.' + settings.className + '-moreButton').click(function(){
			var thisMoreButton = jQuery(this);
			var otherLists = jQuery('.' + settings.className + '-list')
				.not(thisMoreButton.siblings('.' + settings.className + '-list'));
			hideList( otherLists );
			var thisList = thisMoreButton.siblings('.' + settings.className + '-list');
			if(thisList.filter(":visible").length > 0) {
				hideList( thisList );
			}else{
				showList( thisList );
			}
		}).bind('mouseenter',function(){
			jQuery(this).addClass('morebuttonhover');
		}).bind('mouseleave',function(){
			jQuery(this).removeClass('morebuttonhover');
		});
		_this.hide().replaceWith(replacement).appendTo(replacement);
		var thisListBox = replacement.find('.' + settings.className + '-list');
		var thisListBoxSize = thisListBox.find('.' + settings.className + '-item').length;
		if(thisListBoxSize > settings.listboxMaxSize)
			thisListBoxSize = settings.listboxMaxSize;
		if(thisListBoxSize == 0)
			thisListBoxSize = 1;	
		var thisListBoxWidth = Math.round(_this.width() + 5);
		if(jQuery.browser.safari)
			thisListBoxWidth = thisListBoxWidth * 0.94;
		replacement.css('width', thisListBoxWidth + 'px');
		thisListBox.css({
			width: Math.round(thisListBoxWidth-5 - 1) + 'px',
			height: thisListBoxSize * 26 + "px"
		});
	});
}
jQuery.fn.unselectbox = function(){
	var commonClass = 'jquery-custom-selectboxes-replaced';
	return this.each(function() {
		var selectToRemove = jQuery(this).filter('.' + commonClass);
		selectToRemove.replaceWith(selectToRemove.find('select').show());		
	});
}


Что может мешать моему коду правильно работать?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка (PHP+Javasript) s_rx Javascript под браузер 4 21.01.2011 08:19
Проблемка с каруселью(moodular-плагин jQuery) Ejjma jQuery 1 05.01.2011 23:59
Меню на javascript, проблемка с созданием обработчика в цикле Atreides Элементы интерфейса 3 03.02.2010 09:43
Динамический JavaScript проблемка... andrys2007 Events/DOM/Window 3 06.12.2009 13:40
Проблемка в осуществлении MUTOgen jQuery 2 10.08.2009 01:32