Javascript.RU

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

Ajax, php, select
Всем привет. не ругайте и не судите. в javaScript, Ajax вообще мало что понимаю. Даже не могу конкретно составить вопрос. для googla или форума. Хотя что то сделал.)
Вообщем суть
Есть 3 селекта, первый вибирает раздел. второй категорию.
о третьем дальше....
Итак выбрали категорию, выводит результаты
$(".section").change(function() {
		
	var id=$(this).val();
	var dataString = 'category='+ id;

		$.ajax ({
			type: "POST",
			url: "select_category.php",
			data: dataString,
			cache: false,
			success: function(html)
			{
			$(".category").html(html);
			} 
		});

	});
	
	$(".category").change(function() {
		
	var id=$(this).val();
	var dataString = 'category='+ id;

		$.ajax ({
			type: "POST",
			url: "select_auto.php",
			data: dataString,
			cache: false,
			success: function(html)
			{
			$(".auto").html(html);
			} 
		});

	});

<td>
			<select name="section" class="section">
<option selected="selected">--Select section--</option>
<?php
include('db.php');
$sql=mysql_query("select id,title from categories where parent_id='0'");
while($row=mysql_fetch_array($sql)) {
	$id=$row['id'];
	$data=$row['title'];
	echo '<option value="'.$id.'">'.$data.'</option>';
} 
?>
			</select>
		</td>
	</tr>
	<tr>
		<td><label>Type :</label></td>
		<td>
			<select name="category" class="category">
				<option selected="selected">--Select category--</option>
			</select>
		</td>

Как я понимаю,происходит выбор. на сервере тоесть в пхп что то делаеться и выводиться в таблице с классом auto.
Тут все норм. вроде правильно и понятно мне.
Такая же ситуация с 3 селектом. Года отсортировал. вывел. когда выбрали. он вывел все авто нужного года. но когда выбираешь Раздел->Категорию->Года,категории которой выбрал=Показыват авто не из ранее выбранной категории. короче второй параметр не работает
$(".years").change(function() {
		
	var id=$(this).val();
	var dataString = 'year='+ id;
	var cat=$('#category').attr('value'); //Все
	dataString = dataString + "&category=" + cat;
		$.ajax ({
			type: "POST",
			url: "select_auto_year.php",
			data: dataString, //Что смог нарыть и это не работает!
			cache: false,
			success: function(html)
			{
			$(".auto").html(html);
			} 
		});

	});

Код:
//это индексный файл
<?php
include('db.php');
$sql=mysql_query("select DISTINCT
id,year
from auto_cat");
echo '<select name="years" class="years"><option selected="selected">--Select oll_year--</option>';
while($row=mysql_fetch_array($sql)) {
	echo '<option value="'.$row['year'].'">'.$row['year'].'</option>';
} 
echo '</select>';
?>
приводить весь код не буду. сам знаю что где то ошибся. но где
вот код при выборе категории выводит выбор годов и поле импут
Код:
<?php
//а вот сюда должны передаваться два параметра.
include('db.php');
if($_POST['category']) {
	$category=$_POST['category'];

	$sql=mysql_query("select DISTINCT
					  year
					  from auto_cat where category='$category'");
	if(mysql_num_rows($sql) > 0) {
		echo '<input type="hidden" name="category" id="category" value="'.$category.'"/>';
		echo '<select name="years">';
		echo '<option selected="selected">Select category</option>';
		while($row=mysql_fetch_array($sql))	{
		echo '<option value="'.$row['year'].'">'.$row['year'].'</option>';
		}
	} else	echo '<option selected="selected">--none auto--</option></select>';
}

?>
могу предположить что я не правильно написал условие
Код:
<?php
include('db.php');

if(isset($_POST['cat'])) {
	$year=$_POST['year'];
	$category = $_POST['cat'];
	$sql=mysql_query("select * 
	                  from auto_cat 
					  where category='$category'
					  AND year='$year'");
	if(mysql_num_rows($sql) > 0) {
	while($row=mysql_fetch_array($sql))	{
		echo '<tr>';
		echo '<td style="color: #0F0">'.$row['model'].'</td><td>'.$row['year'].'</tr>';
		echo '</tr>';
		}
	} else echo 'Категория пустая';
}

if(isset($_POST['year']) && !isset($_POST['cat'])) {
	$year=$_POST['year'];

	$sql=mysql_query("select * from auto_cat where year='$year'");
	if(mysql_num_rows($sql) > 0) {
	while($row=mysql_fetch_array($sql))	{
		echo '<tr>';
		echo '<td style="color: #F00">'.$row['model'].'</td><td>'.$row['year'].'</tr>';
		echo '</tr>';
		}
	} else echo 'Категория пустая';
}
?>
а оно не правильно, но второй параметр не передается
var id=$(this).val();
	var dataString = 'year='+ id;
	var cat=$('#category').attr('value');
	dataString = dataString + "&category=" + cat;

когда разберусь как это работает и оптимизирую php. и javascript
подскажите пожалуйста, что не так и как сделать правильно. может на javasript может длявторого парамертадобавить условие. только как и какое?

Последний раз редактировалось php_user, 19.12.2013 в 18:51.
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2013, 18:16
Новичок на форуме
Отправить личное сообщение для php_user Посмотреть профиль Найти все сообщения от php_user
 
Регистрация: 19.12.2013
Сообщений: 5

cat: undefined
dataString: "year=1991&category=undefined"
id: "1991"
при обоих случаях
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2013, 22:01
Интересующийся
Отправить личное сообщение для gradus Посмотреть профиль Найти все сообщения от gradus
 
Регистрация: 18.02.2011
Сообщений: 24

элемента с id=category в приведенном коде нету
должно быть так
var cat=$('select.category').val();

т.к. <select name="category" class="category">
Ответить с цитированием
  #4 (permalink)  
Старый 20.12.2013, 07:16
Новичок на форуме
Отправить личное сообщение для php_user Посмотреть профиль Найти все сообщения от php_user
 
Регистрация: 19.12.2013
Сообщений: 5

Спасибо работает, только я не понимаю почему так?
ведь создаеться input hidden с категорией
if(mysql_num_rows($sql) > 0) {
		echo '<input type="hidden" name="category" id="category" value="'.$category.'"/>';
		echo '<select name="years">';
		echo '<option selected="selected">Select category</option>';
		while($row=mysql_fetch_array($sql))	{
		echo '<option value="'.$row['year'].'">'.$row['year'].'</option>';
		}
	} else	echo '<option selected="selected">--none auto--</option></select>';
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живой поиск JQUERY + AJAX + PHP + MYSQL dimi007 AJAX и COMET 2 22.07.2014 13:50
Ajax + PHP + MySQL MadChild AJAX и COMET 2 03.07.2013 17:14
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
охранение переменных в сессии php переданных ajax. wayzer AJAX и COMET 7 12.09.2012 16:13
php session а в ajax Sadist_dead AJAX и COMET 1 19.08.2011 18:35