djnick
Новичок
Доброго времени суток, встала задача написать скрипт каталога запчастей, с использованием ajax, php + mysql
Код index.php:
Код valid.js:
Код getseries.php (аналогичен getmodel, getenginepower...):
Код getgroup.php:
Почему-то не переменная $model пустая и из-за этого выдаёт ошибку MySql...
Никак не могу передать значение model в переменную $model...
Нужно чтобы при выборе модели строился див с рисунками групп деталей...
Пробовал подгружать getgroup в див ajax-ом, вставлять код в тело index.php, ничего не помогает... Подскажите, что почитать. (ajax только начал осваивать...)
Код index.php:
PHP:
<?php require_once ("carcat/db.php");?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="carcat/jquery.js"></script>
<script type="text/javascript" src="carcat/valid.js"></script>
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
<form action="" id="forma">
<div id="Container">
<div>
<label>Марка машины:</label><br/>
<select id="markdropdown">
<option value="">Выберете марку...</option>
<?php
$array = mysql_query ("SELECT * FROM car_mark");
while ($my = mysql_fetch_array ($array)) {
echo "<option value=\"".$my["mark_id"]."\">".$my["mark_name"]."</option>";
}
?>
</select>
</div>
<div style="display:none" id="seriesdiv">
<label>Серия:</label><br/>
<select id="seriesdropdown" disabled="disabled"></select>
</div>
<div style="display:none" id="yeardiv">
<label>Год выпуска:</label><br/>
<select id="yeardropdown" disabled="disabled"></select>
</div>
<div style="display:none" id="kuzovtypediv">
<label>Тип кузова:</label><br/>
<select id="kuzovtypedropdown" disabled="disabled"></select>
</div>
<div style="display:none" id="enginetypediv">
<label>Тип двигателя:</label><br/>
<select id="enginetypedropdown" disabled="disabled"></select>
</div>
<div style="display:none" id="enginepowerdiv">
<label>Мощность двигателя:</label><br/>
<select id="enginepowerdropdown" disabled="disabled"></select>
</div>
<div style="display:none" id="modeldiv">
<label l>Модель:</label><br/>
<select id="modeldropdown" disabled="disabled"></select>
</div>
</div>
</td>
<td><div style="display:none" id="groupdiv"><img id="groupimg" src="default.jpg" alt="группа 1"/></div></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
PHP:
$(document).ready(function() {
$("#markdropdown").change(function() {
var markvalue = $("#markdropdown option:selected").val();
if (markvalue == '') {clearlist();}
getseries();
})
$("#seriesdropdown").change(function() {
getyear();
})
$("#yeardropdown").change(function() {
getkuzovtype();
})
$("#kuzovtypedropdown").change(function() {
getenginetype();
})
$("#enginetypedropdown").change(function() {
getenginepower();
})
$("#enginepowerdropdown").change(function() {
getmodel();
})
$("#modeldropdown").change(function() {
getgroup();
})
}
);
function getseries() {
var markvalue = $("#markdropdown option:selected").val();
var series = $("#seriesdropdown");
var seriesdiv = document.getElementById("seriesdiv");
if (markvalue == 0) {
series.attr("disabled",true);
seriesdiv.style.display = "none";
getyear();
} else {
seriesdiv.style.display = "block";
series.attr("disabled",false);
series.load('/carcat/getseries.php',{mark : markvalue});
}
{clearlist2();}
}
function getyear() {
var markvalue = $("#markdropdown option:selected").val();
var seriesvalue = $("#seriesdropdown option:selected").val();
var yeardiv = document.getElementById("yeardiv");
var year = $("#yeardropdown");
if (markvalue == 0) {
year.attr("disabled",true);
yeardiv.style.display = "none";
getkuzovtype();
} else {
year.attr("disabled",false);
yeardiv.style.display = "block";
year.load('/carcat/getyear.php',{series : seriesvalue});
}
if (seriesvalue == '') {clearlist2();}
}
function getkuzovtype() {
var markvalue = $("#markdropdown option:selected").val();
var seriesvalue = $("#seriesdropdown option:selected").val();
var yearvalue = $("#yeardropdown option:selected").val();
var kuzovtype = $("#kuzovtypedropdown");
var kuzovtypediv = document.getElementById("kuzovtypediv");
if (markvalue == 0) {
kuzovtype.attr("disabled",true);
kuzovtypediv.style.display = "none";
getenginetype();
} else {
kuzovtype.attr("disabled",false);
kuzovtypediv.style.display = "block";
kuzovtype.load('/carcat/getkuzovtype.php',{year : yearvalue});
}
if (yearvalue == '') {clearlist3();}
}
function getenginetype() {
var markvalue = $("#markdropdown option:selected").val();
var seriesvalue = $("#seriesdropdown option:selected").val();
var yearvalue = $("#yeardropdown option:selected").val();
var kuzovtypevalue = $("#kuzovtypedropdown option:selected").val();
var enginetype = $("#enginetypedropdown");
var enginetypediv = document.getElementById("enginetypediv");
if (markvalue == 0) {
enginetype.attr("disabled",true);
enginetypediv.style.display = "none";
getenginepower();
} else {
enginetype.attr("disabled",false);
enginetypediv.style.display = "block";
enginetype.load('/carcat/getenginetype.php',{kuzovtype : kuzovtypevalue});
}
if (kuzovtypevalue == '') {clearlist4();}
}
function getenginepower() {
var markvalue = $("#markdropdown option:selected").val();
var seriesvalue = $("#seriesdropdown option:selected").val();
var yearvalue = $("#yeardropdown option:selected").val();
var kuzovtypevalue = $("#kuzovtypedropdown option:selected").val();
var enginetypevalue = $("#enginetypedropdown option:selected").val();
var enginepower = $("#enginepowerdropdown");
var enginepowerdiv = document.getElementById("enginepowerdiv");
if (markvalue == 0) {
enginepower.attr("disabled",true);
enginepowerdiv.style.display = "none";
getmodel();
} else {
enginepower.attr("disabled",false);
enginepowerdiv.style.display = "block";
enginepower.load('/carcat/getenginepower.php',{enginetype : enginetypevalue});
}
if (enginetypevalue == '') {clearlist5();}
}
function getmodel() {
var markvalue = $("#markdropdown option:selected").val();
var seriesvalue = $("#seriesdropdown option:selected").val();
var yearvalue = $("#yeardropdown option:selected").val();
var kuzovtypevalue = $("#kuzovtypedropdown option:selected").val();
var enginetypevalue = $("#enginetypedropdown option:selected").val();
var enginepowervalue = $("#enginepowerdropdown option:selected").val();
var modelvalue = $("#modeldropdown option:selected").val();
var model = $("#modeldropdown");
if (markvalue == 0) {
model.attr("disabled",true);
modeldiv.style.display = "none";
} else {
model.attr("disabled",false);
modeldiv.style.display = "block";
model.load('/carcat/getmodel.php',{enginepower : enginepowervalue});
}
if (enginepowervalue == '') {clearlist6();}
}
function getgroup() {
var markvalue = $("#markdropdown option:selected").val();
var seriesvalue = $("#seriesdropdown option:selected").val();
var yearvalue = $("#yeardropdown option:selected").val();
var kuzovtypevalue = $("#kuzovtypedropdown option:selected").val();
var enginetypevalue = $("#enginetypedropdown option:selected").val();
var enginepowervalue = $("#enginepowerdropdown option:selected").val();
var modelvalue = $("#modeldropdown option:selected").val();
var group = $("#groupimg");
if (markvalue == 0) {
groupdiv.style.display = "none";
} else {
groupdiv.style.display = "block";
group.load('/carcat/getgroup.php',{model : modelvalue});
}
if (modelvalue == '') {clearlist6();}
}
PHP:
<?php
require_once ("db.php");
$mark = $_POST["mark"];
$cararray = mysql_query ("SELECT * FROM car_series WHERE mark_id = $mark");
echo "<option value=\"\">Выберете серию</option>";
while ($mcar = mysql_fetch_array ($cararray)) {
echo "<option value=\"".$mcar["series_id"]."\">".$mcar["series_name"]."</option>";
}
PHP:
<?php
require_once ("db.php");
$model = $_POST["model"];
$array = mysql_query ("SELECT * FROM car_group WHERE model_id = $model");
while ($m = mysql_fetch_array ($array)) {
echo "<img src=\"".$m["group_icon"]."\"alt=\"".$m["group_name"]."\"/>" ;
}
Никак не могу передать значение model в переменную $model...
Нужно чтобы при выборе модели строился див с рисунками групп деталей...
Пробовал подгружать getgroup в див ajax-ом, вставлять код в тело index.php, ничего не помогает... Подскажите, что почитать. (ajax только начал осваивать...)