• 24-09-2010, 18:28:01
    #1
    Merhaba arkadaşlar

    elimde bir arama formu sayfası var.




    bu sayfayı otoilanara.php sayfasına form post ile göndererek verilere göre aşağıdaki sql verisini kullanarak listeleme yapıyorum.



    $marka=$_POST['marka'];
    $model=$_POST['model'];
    $sehir=$_POST['sehir'];
    
    -----------------------
    --------------------------
    
    $kosul = '';
    
    if($marka> ' '){ $kosul = ' and marka=\''.$marka.'\'' ; }
    if($model > ' '){ $kosul = $kosul . ' and model=\''.$model.'\''; }
    if($sehir > ' '){ $kosul = $kosul . ' and sehir=\''.$sehir.'\''; }
    
    ---------------------------------------------------------
    
    ---------------------------------------------------------
    $sql='select * from otoilan where 1 ' . $kosul;
    $result = mysql_query($sql);
    while($array = mysql_fetch_array($result))
    {
    burada da listeleme yapıyorum.
    }
    Hiç bir sorun yok her şey tıkır çalışıyor ama mesela formdan Ankaradaki ilanları listele dediğimizde listeleme yapılıyor ama açılır listede haliyle Ankara seçeneğinin seçimi kalkmış oluyor işte benimde istediğim bu.Yani formdan seçilen tüm veriler post ile gönderildiğinde her seçenek için seçilen değerin yeni listelemede aktif halde olmasını istiyorum.
    Bunu biraz araştırdım if ile yapanlar olmuş ama ben de o kadar çok veri var ki her birini if ile yapıp ona selected atamak çok uzun olacaktır.BU işin tekniği nedir arkadaşlar.
  • 24-09-2010, 18:33:55
    #2
    for döngüsü içinde sadece 1 adet if ile çözebilirsin bunu. veritabanından şehirleri listelerken get ile gelen değeri vt den gelen değerle karşılaştır sonuç eşitse selected='selected' yazdır
  • 24-09-2010, 19:16:23
    #3
    Ya da AJAX kullanabilirsiniz. Hem işlemler çok daha hızlı olur, hem kullanıcının hoşuna gider.
  • 24-09-2010, 19:17:15
    #4
    Hkan adlı üyeden alıntı: mesajı görüntüle
    Ya da AJAX kullanabilirsiniz. Hem işlemler çok daha hızlı olur, hem kullanıcının hoşuna gider.
    aynen öyle
  • 24-09-2010, 19:24:11
    #5
    Bu for döngüsü nasıl bir döngü olmalı anlamadım
    Ben mesela veritabanından şöyle çekiyorum buna ne ilave etmem gerekecek.

    <select name="sehir" id="sehir" style="width:130px;">
      <option value="">Hepsi</option>
    
    <?php
    $sql="SELECT plaka,ad from sehir order by plaka asc";
    $sorgu=mysql_query($sql);
    while($array=mysql_fetch_array($sorgu))
    {
    
    ?>
    <option value="<?php echo $array['plaka'] ;?>"> <?php echo $array['ad']; ?> </option>
    
    <?
    }
    ?>
    
    </select>
    
    
    
    
    ?>
    ben yukarıdakine nasıl bir for ve if döngüsü eklemeliyim örnek gösterebilir misiniz.
  • 24-09-2010, 19:33:25
    #6
    aramanı GET metodu ile yaptığını varsayıyorum.

    <select name="sehir" id="sehir" style="width:130px;"> 
      <option value="">Hepsi</option> 
    
    <?php 
    $sql="SELECT plaka,ad from sehir order by plaka asc"; 
    $sorgu=mysql_query($sql); 
    while($array=mysql_fetch_array($sorgu)) 
    { 
    
    ?> 
    <option <?php if($_GET["plaka"]==$array['plaka']) echo "selected='selected'"; ?> value="<?php echo $array['plaka'] ;?>"> <?php echo $array['ad']; ?> </option> 
    
    <? 
    } 
    ?> 
    
    </select> 
    
    
    
    
    ?>
  • 24-09-2010, 19:33:43
    #7
    <?php
    while($array=mysql_fetch_array($sorgu))
    {
    ?>
    <option value="<?php echo $array['plaka'] ;?>"<?php if($array['plaka'] == $_POST['sehir']) echo ' selected="selected"'; ?>> <?php echo $array['ad']; ?> </option>
    
    <?
    }
    ?>
  • 24-09-2010, 19:42:11
    #8
    ikinize d eteşekkürler peki son bi soru ben post ile alıyorum verilerimi sizce get ile mi almalıyım
  • 24-09-2010, 19:54:56
    #9
    tanermacit adlı üyeden alıntı: mesajı görüntüle
    ikinize d eteşekkürler peki son bi soru ben post ile alıyorum verilerimi sizce get ile mi almalıyım
    arama formu için ben genelde get kullanırım