Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Select ile Seçtiğim Verileri Post Edip Listelemek

Merhaba arkadaşlar kategoriler adlı bir veritabanım var

bu veritabanımdan bilgileri çekip listeletebiliyorum. çektiğim bilgileri selectlere listeleniyor. Ana kategorisine tıklayınca Yanına yeni bir select açılarak tıkladığım kategorinin alt kategorisi listeleniyor. bu işlem en son eklenen alt kategoriye kadar devam ediyor.

Aşağıdaki Resimdeki gibi;

http://i46.tinypic.com/2rm2n47.png

Benim istediğim burada tıklanan kategorileri devam et butonuna bastığımda. açılacak olan ilan-ekle-detay.php sayfasında listelemek.

(örn; Vasıta > otomobil > Anadol > Böcek > 1.3 )

yukarıdaki örnekteki gibi listelemek istiyorum. Form olarak post ettiriyorum ama post ettirdiğimi nasıl çekebileğimi beceremedim.

Kodlamam aşağıdaki şekilde ;

İlan-ekle.php


<?php require_once('baglan/baglann.php'); ?>

<?php function boxlar($colname_kategoriler)  { ?> 
<?php 
 
$query_kategoriler = sprintf("SELECT kategori_id, kategori_adi FROM kategoriler WHERE kategori_ustid = %s", $colname_kategoriler);
$kategoriler = mysql_query($query_kategoriler);
$row_kategoriler = mysql_fetch_assoc($kategoriler);
$totalRows_kategoriler = mysql_num_rows($kategoriler);
?>
 
 
    <select name="combom[<?php echo $row_kategoriler['kategori_id']?>]" class="combom" size="10">
****<option value="-1">Seçiniz</option>
    <?php
            do {  ?>
             
              <option value="<?php echo $row_kategoriler['kategori_id']?>"><?php echo $row_kategoriler['kategori_adi']?></option>
              <?php
            } while ($row_kategoriler = mysql_fetch_assoc($kategoriler));
              $rows = mysql_num_rows($kategoriler);
              if($rows > 0) {
                  mysql_data_seek($kategoriler, 0);
                  $row_kategoriler = mysql_fetch_assoc($kategoriler);
              }
    ?>
    </select>
 
 
<?php } ?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.3.2.min.js"></script>
 
<script type="text/javascript">
 
$('.combom').live('change', function() {
    var kategori_id = this.value;
    var $selectBox = $(this);
  
    // Daha önce eklenmiş alt kategoriler varsa önce onları uçuralım...
    $selectBox.nextAll().remove();
  
    $.get('ajax.php?kategori_id=' + kategori_id, function(response) {
        // Eğer ajax.php boş cevap döndürürse boşuna eleman eklemeyelim...
        if(!response) {
            return;
        }
 
        $selectBox.after(response);
    });
});
</script>
</head>
 
<body>
 
 
<?php boxlar(0) ?>
 
 
</body>
</html>




Ajax.php


<?php require_once('baglan/baglann.php'); ?>


<?php function boxlar($colname_kategoriler)  { ?> 
<?php 
  $nt = $colname_kategoriler;
global $nt ;
$query_kategoriler = sprintf("SELECT kategori_id, kategori_adi FROM kategoriler WHERE kategori_ustid = %s", $colname_kategoriler);
$kategoriler = mysql_query($query_kategoriler);
$row_kategoriler = mysql_fetch_assoc($kategoriler);
$totalRows_kategoriler = mysql_num_rows($kategoriler);
?>
 
<?php if($totalRows_kategoriler > 0) {  ?>
    <select name="combom[<?php echo $row_kategoriler['kategori_id']?>]" class="combom" size="10">
    <?php
            do {  ?>
             
              <option value="<?php echo $row_kategoriler['kategori_id']?>"><?php echo $row_kategoriler['kategori_adi']?></option>
              <?php
            } while ($row_kategoriler = mysql_fetch_assoc($kategoriler));
   $rows = mysql_num_rows($kategoriler); 
if($rows > 0) { 
mysql_data_seek($kategoriler, 0); 
$row_kategoriler = mysql_fetch_assoc($kategoriler); 
} 
?> 
</select> 
<?php } else { ?> 
<div id="processDone" class="adsok"> 

<p style="font-size:14px;">Kategori seçimi tamamlanmıştır.</p> 
<br clear="all"> 
<input class="okButton uiButton" type="submit" value="Devam Et"> 
</div> 
<?php } } ?> 



<?php
 
$kategori_id = $_GET["kategori_id"];
 boxlar($kategori_id); ?>





Yardımlarınızı bekliyorum arkadaşlar.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    siyahbeyaz adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    472 cevap - 20 soru
    ajax.php doasyasının bır yedegını al ve icine su kodu gir
    <?php
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    ?>

    Cıkan Sonucu buraya Bi Yapıştır bakam
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      hocam o şekilde bende baktım post edilen idlere mantık kuramadım ama :)

      kodlar böyle
      Array
      (
      [combom] =&gt; Array
      (
      [2] =&gt; 2
      [26] =&gt; 26
      [65] =&gt; 65
      )

      )

      bunlar selectlerden seçtiğim gelen idler
      9 yıl önce yazılmış 9 yıl önce güncellenmiş
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      <php
      foreach($_POST["combom"] as $key =>$deger) 
      {
      echo $deger;
      }
      ?>
      


      bu sekilde secilen kategori id leri alabilirsin.
      9 yıl önce yazılmış
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      Hocam oraya kadar bende yapabiliyorum aslında ama idlerini listeliyor isimleri almıyor value degerleri id oldugu için.
      9 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      value den baska birsey alamazsın ki... ama sole birsey yapabilirsin...

      option value="<?php echo $row_kategoriler['kategori_id']?>|<?php echo $row_kategoriler["kategori_adi"]"><?php echo $row_kategoriler['kategori_adi']?></option>
      


      foreach icinde
      foreach($_POST["combo"] as $deger) 
      {
      $exp = explode("|",$deger);
      echo "value: $exp[0]<br /> ";
      echo "Kategori ADi : $exp[1] ";
      }
      
      9 yıl önce yazılmış 9 yıl önce güncellenmiş
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      hocam optionda valueye kategori_adinida vermeyi denemiştim

      mysql num rows ve

      Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\ilanver\ajax.php on line 10
      Call Stack

      bu hataları vermişti yine denedim yine verdi. başka bir yolu yokmudur bunun?
      9 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      option value="<?php echo $row_kategoriler['kategori_id']?>|<?php echo $row_kategoriler['kategori_adi']"><?php echo $row_kategoriler['kategori_adi']?></option>

      olarak denermisin digerinde cift tırnak koymustum ondandır .. bu arada kategori_Adi kismini dogru yazıormusun?
      sende bir problem var.. iki koduda yan yana yazması lazım
      9 yıl önce yazılmış
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      Yok hocam ben zaten kontrol edip düzeltmiştim denerken. Siz bu yöntemi söylemeden öncede aynı yöntemi denedim ama aynı hatayı aldım. bu arada bu hata seçilen idlerin listelendiği yerde değil. selectlerden kategori seçerken meydana geliyor.
      9 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      sorun jquery kısmında ikin ci selecti cekerken

      id|kategori_adi olarak alıyor. haliyle bu sekilde where kategori_ust_id=%s alanıda id|kategori_adi olarak gelior.. sen nıye bu ısı bu kadar yokusa suruyorsun onu anlamıs degilim...

      id degerini aliyorsun.. aldıgın id degerini

      select * from kategoriler where kategori_id='$gelen_id' seklinde neden almıyorsun?
      9 yıl önce yazılmış
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      Hocam ben bu jquery olayından hiç anlamıyorum . bu select ile listeleme kodunuda geçen bu sitede seyit diye bi arkadaşımız sormustu onlar bu sekilde yapmıstı bende bu sekil yaptım
      9 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      optionların value oldugu her yere <?php echo $row["kategori_id"]?>|<?php echo $row["kategori_adi"]?> bunu gir ana kategorilerde dahil..

      <script type="text/javascript">
        
      $('.combom').live('change', function() {
          var kategori_ido = this.value;
          var kategori_Spl = kategori_ido.split("|");
          var kategori_id = kategori_Spl[0];
          var $selectBox = $(this);
         
          // Daha önce eklenmiş alt kategoriler varsa önce onları uçuralım...
          $selectBox.nextAll().remove();
         
          $.get('ajax.php?kategori_id=' + kategori_id, function(response) {
              // Eğer ajax.php boş cevap döndürürse boşuna eleman eklemeyelim...
              if(!response) {
                  return;
              }
        
              $selectBox.after(response);
          });
      });
      </script>
      


      bu koduda bu sekilde degistir dene
      9 yıl önce yazılmış
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      Dediğiniz yöntem oldu hoca teşekkür ederim.

      2|emlak > 3|daire şeklinde oldu ama

      daha önce verdiğiniz

      foreach($_POST["combo"] as $deger) 
      {
      $exp = explode("|",$deger);
      echo "value: $exp[0]<br /> ";
      echo "Kategori ADi : $exp[1] ";
      }
      


      koduda denedim hata aldım sadece ayırmak kaldı yani şuan onunla uğraşıyorum yapabilirsem yazarım tekrar çok teşekkür ederim allah razı olsun.
      9 yıl önce yazılmış
    • chatlak49 adlı üyenin fotoğrafı chatlak49
      Teşekkür ederim hocam

      kodlarda biraz oynama yaptım düzeldi yardımlarınız için çok teşekkür ederim.

      													
      foreach($_POST["combom"] as $key => $deger) 
      {
      $exp = explode("|",$deger);
      
      echo "".$exp[1]." ";
      }
      	
      
      9 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.