micr0b
Новичок
Здравствуйте!
Хотелось бы получить помощь).
Для начала покажу полный файл с скриптом:
index.php
pick.php
Так вот, скрипт работает вроде отлично, но я не могу сделать так чтобы наполнение select-а при запуске скрипта наполнялся автоматически.
Приблизительный пример моего скрипта есть на сайте shinteh.com.ua
Хотелось бы получить помощь).
Для начала покажу полный файл с скриптом:
index.php
PHP:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#selecing").change(function(){
/*
* В переменную width, height, diameter, idfirma ложим значение селекта
*/
var width = $("#width").val();
var height = $("#height").val();
var diameter = $("#diameter").val();
var idfirma = $("#idfirma").val();
/*
* Формируем данные, которые будут отправлены серверу
* var dataString = 'width='+width+'&height='+height+'&diameter='+diameter+'&idfirma='+idfirma; // если POST
*/
var dataString = {'width':width, 'height':height, 'diameter':diameter, 'idfirma':idfirma}; // если GET
/*
* Отправляєм на обработку запрос серверу для получения ответа,
* с помощю которого потом заполним селекты новыми значениями
*/
//alert("1"+width+"\n2"+height+"\n3"+diameter+"\n4"+idfirma);
$.ajax({
type: "GET",
url: "pick.php",
dataType: "text", // or "json"
data: dataString,
cache: false,
success: function(msg)
{
var result;
try{
result = eval('(' + msg + ')'); // or delete a line of code if dataType: "json"
/*
* проходимся по пришедшему массиву циклом
*/
for (var key in result)
{
/*
* Очищаем селект от предыдущих элементов
*/
// переменная хранит имя селекта
var nameArr = $('#'+key);
nameArr.each(function(){ $(this).empty().append('<option value="">' + key + '</option>');});
// переменная хранит значения елементов конкретного селекта
var valuesArr = result[key];
for (i in valuesArr)
{
/*
* Добавляем в селект соответствующие элементы
*/
nameArr.append('<option value="' + valuesArr[i] + '">' + valuesArr[i] + '</option>');
}
}
}catch(e){ alert("Error"); }
},
//complete: function(){alert('Дані добавлені');},
error: function(){alert('Виникла помилка при відправленні даних, спробуйте ще раз.');}
});
});
});
</script>
<div id="selecing">
<select id="width" name="width" />
<option rel="" value="">width</option>
<option value="195">195</option>
<option value="200">200</option>
<option value="170">170</option>
<option value="342">342</option>
</select>
<select id="height" name="height" />
<option value="">height</option>
<option value="65">65</option>
<option value="50">50</option>
<option value="30">30</option>
<option value="24">24</option>
<option value="34">34</option>
</select>
<select id="diameter" name="diameter" />
<option value="">diameter</option>
<option value="15">15</option>
<option value="8">8</option>
<option value="34">34</option>
<option value="9">9</option>
</select>
<select id="idfirma" name="idfirma" />
<option value="">idfirma</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
PHP:
<?PHP
// http://ajax.shuna/pick.php?width=&height=&diameter&idfirma=
include "config.php";
$width = mysql_escape_string($_GET['width']);
$height = mysql_escape_string($_GET['height']);
$diameter = mysql_escape_string($_GET['diameter']);
$idfirma = mysql_escape_string($_GET['idfirma']);
$sql = "SELECT `width`, `height`, `diameter`, `idfirma` FROM `objects` WHERE `active`='0'";
if(!empty($width))
{
$sql .= " AND `width`='".$_GET['width']."'";
}
if(!empty($height))
{
$sql .= " AND `height`='".$_GET['height']."'";
}
if(!empty($diameter))
{
$sql .= " AND `diameter`='".$_GET['diameter']."'";
}
if(!empty($idfirma))
{
$sql .= " AND `idfirma`='".$_GET['idfirma']."'";
}
$query = mysql_query($sql);
while($arr = @mysql_fetch_array($query))
{
if(empty($width)){$origArr['width'][] = $arr['width'];}
if(empty($height)){$origArr['height'][] = $arr['height'];}
if(empty($diameter)){$origArr['diameter'][] = $arr['diameter'];}
if(empty($idfirma)){$origArr['idfirma'][] = $arr['idfirma'];}
}
// Pick
if(!empty($origArr))
{
$resultArr = array();
foreach($origArr as $key => $val)
{
$resultArr[$key] = array_values(array_unique($val));
}
echo json_encode($resultArr);
}
?>
Приблизительный пример моего скрипта есть на сайте shinteh.com.ua