Ufak bir örnekle başlayalım:
<?
if ($_POST) {
$kategori = $_POST['kategori'];
echo $kategori[0] . ' > ' . $kategori[1];
}
?>
<form action="?" method="post">
<select name="kategori[]">
<option>Araba</option>
</select>
<select name="kategori[]">
<option>BMW</option>
<option>Audi</option>
<option>Peugeot</option>
</select>
<input type="submit" value="test" />
</form>yukarıdaki kod istediğini aslında yapıyor. fakat senin kodunda SELECT (option) value olarak kategori-id koymuşsun. Haliyle yukarıdaki kodun PHP kısmı sana Araba > BMW değil 123 > 43 gibi id leri gösterir.
Burda value olarak hem kategori id, hemde kategori adını gönderebilirsen işin kolay olur. Örn çıktın şu şekilde olmalı:
<select name="kategori[]">
<option value="[123][Araba]">Araba</option>
</select>
<select name="kategori[]">
<option value="[43][BMW]">BMW</option>
</select>
böylece form post halinde $kategori[0] değişkeni [123][Araba] değerini getirir. Buradan da ID ve KAT.ADI nı parçalayarak alabilirsin. Örn:
<?
preg_match_all('#\[(\d+)\]\[([^\]]*)\]#', $kategori[0], $ana_kat);
$ana_kategori_id = $ana_kat[1][0];
$ana_kategori_adi = $ana_kat[2][0];
?>
son olarak tüm select ler üzerindeki verileri işleme kısmını döngü ile yapabilirsin:
<?
$kategoriler = $_POST['kategori'];
$kat_isimleri = array();
foreach ((array) $kategoriler as $birKategori):
preg_match_all('#\[(\d+)\]\[([^\]]*)\]#', $birKategori, $cat_data);
$kat_isimleri[] = $cat_data[2][0];
endforeach;
if (count($kat_isimleri)) echo implode (' > ', $kat_isimleri);
?>