Задача:
Динамический показ данных (товар) в зависимости от выбора элемента (категория) в выпадающем списке , используя AJAX.
Решение (Пример):
Шаг 1
Создать файл index.php, в котором
- подключаемся к базе данных для получения списка категории
Листинг файла подключения к БД auth.php
<?
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test"; // название базы данных
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_query('SET NAMES utf8') or header('Location: Error');
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
?>
- выводим форму с выпадающим списком из этих категорий
- пишем AJAX запрос на обработку выбранного элемента
Листинг файла с AJAX запросом index.php
<?php
include "auth.php";//Подключаем БД
//делаем запрос на категории
$query = "select * from allcat where Id_parent=0 ";
$result = mysql_query($query) or die(mysql_error());
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<form id="myForm">
Выберите Категорию:<br/>
<select id="idcat">
<?php
//Выводим категории и ее ID
while ($row=mysql_fetch_array($result))
{
print "<option value=".$row['Id_cat'].">";
print $row['Name'];
echo("</option>");
}
?>
</select>
</form>
<div id="content"></div>
<script>
$(document).ready(function(){
$('#idcat').change(function(){
$.ajax({
type: "POST",
url: "show.php",
data: "idcat="+$("#idcat").val(),
success: function(html){
$("#content").html(html);
}
});
return false;
});
});
</script>
</body>
</html>
Шаг 2
Создать файл show.php, в котором обрабатываем AJAX запрос
- подключаемся к базе данных для получения списка товаров по ID категории
- выводим полученные товары
Листинг файла для обработки запроса show.php
<?php
include "auth.php"; //Подключаем БД
//делаем запрос на товары этой категории
$query = "select * from allcat where Id_parent=".$_REQUEST['idcat']."";
$result = mysql_query($query) or die(mysql_error());
// выводим товары полученные по запросу
while ($row=mysql_fetch_array($result))
{
print $row['Name']."<br>";
}
?>
Дружище, СПАСИБО!!!
Искал 2 дня решение.
по всему инету раскинуто как-то заумно, на массивах и т.п.
Спасибо, то что надо!
Огромное спасибо!
Это именно то, что я искал!
Всё просто и понятно =)