v2.5.2
Giriş yap

PHP listeleme işlemi

muzman
577 defa görüntülendi ve 1 kişi tarafından değerlendirildi

MErhaba bir sorunum var ve bilgi eksikliğinden çözemiyorum.
buna benzer bir soru sormustum ama gene yapamadım kusura bakmayın şimdi benim böyle bir kodum var

<section class="property-grid grid">
    <div class="container">
      <div class="row">
        <div class="col-sm-12">
          <div class="grid-option">
            <form>
              <select class="custom-select" id="secim" onchange="getir()">
                <option selected>Tümü</option>
                <option value="1" >Satılık ev</option>
                <option value="2">Kiralık ev</option>
                <option value="3">Satılık arsa</option>
              </select>
              
            </form>
          </div>
        </div>
           <?php $sinif->arsailan(); ?>
        <?php $sinif->evilan(); ?>
    </div>
  </section>

ben bu kodda select box her değiştiğinde
php ile aldıgım ilanları listelemek istiyorum nasıl yapabilirm bunu

Cevap yaz
Cevaplar (2)
coder
1149 gün önce

Tekrar merhaba.
Bir örnek yapmaya çalıştım.

Veritabanı yapımız.

ilan_kategoriler tablosu

kategori_id (int)kategori_baslik (varchar)
1Satılık Ev
2Kiralık Ev
3Satılık Arsa

ilanlar tablosu

ilan_id (int)ilan_kategori_id (int)ilan_baslik (varchar)
11Satılık Ev 1
21Satılık Ev 2
32Kiralık Ev 1
42Kiralık Ev 2
53Satılık Arsa 1
63Satılık Arsa 2

baglan.php

<?php

// DATABASE ADI = ilansitesi

try {
    $db = new PDO("mysql:host=localhost;dbname=ilansitesi;charset=utf8","root","");
} catch (PDOException $e) {
    exit('Bağlantı sağlanamadı!<br>'.$e->getMessage());
}

index.php

<?php include("baglan.php"); ?> <!-- VERİTABANI BAĞLANTI DOSYASI-->

<!doctype html>
<html lang="en">
<head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- JQUERY-->
    <script src="https://code.jquery.com/jquery-3.6.0.js"></script>
    
	<!-- AJAX DOSYAMIZ-->
    <script src="Ajax.js"></script>
    
    <title>İlan Sitesi</title>

</head>
<body>

	<section class="container">
		<div class="row d-flex justify-content-center">
			<div class="col-sm-12">
				<form>
					<?php
					$kategoriBul = $db->prepare("SELECT * FROM ilan_kategoriler");
					$kategoriBul->execute();
					$kategoriler = $kategoriBul->fetchAll(PDO::FETCH_ASSOC);
					?>

					<select class="custom-select" id="ilan-kategori">
						<option selected value="0">Tümü</option>
						<?php foreach ($kategoriler as $kategori): ?>
							<option value="<?php echo $kategori["kategori_id"]; ?>" ><?php echo $kategori["kategori_baslik"]; ?></option>
						<?php endforeach; ?>
					</select>
				</form>
			</div>
		</div>

		<div class="row d-flex justify-content-center mt-4" id="ilanlar"></div>

	</section>

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>

</body>
</html>

Ajax.js

$(document).ready(function(){
    $("#ilanlar").hide();
    $(document).on('change', '#ilan-kategori', function() {
        var ilanKategori_id = $(this).val();

        $.ajax({
            url: "ilanlar.php",
            type: "POST",
            data: {"ilanKategori":ilanKategori_id},
            success: function(result){
                $("#ilanlar").show();
                $("#ilanlar").html(result);
            }
        });

    });
});

ilanlar.php

<?php
include("baglan.php");

if($_POST){
    
    $kategori_id = $_POST["ilanKategori"];

    $sql = "SELECT * FROM ";

    if($kategori_id == 0){
        $sql .= "ilanlar";
    }else{
        $sql .= "ilanlar WHERE ilan_kategori_id = :kategori_id";
    }

    $ilanBul = $db->prepare($sql);
    if($kategori_id == 0){ $ilanBul->execute(); }else{ $ilanBul->execute([":kategori_id" => $kategori_id]); }
    $ilanlar = $ilanBul->fetchAll(PDO::FETCH_ASSOC);

    foreach ($ilanlar as $ilan): ?>

        <div class="col-sm-12 col-md-4 col-lg-3">
            <div class="card box-shadow mb-4">
                <img class="card-img-top img-thumbnail border-white" src="img/resim.jpg" alt="<?php echo $ilan["ilan_baslik"]; ?>">
                <div class="card-body">
                    <h5 class="card-title display-4" style="font-size: 24px"><b><?php echo $ilan["ilan_baslik"]; ?></b></h5>
                    <div class="d-flex justify-content-between align-items-center">
                        <a href="#" class="btn btn-info btn-sm btn-block">İlanı Gör</a>
                    </div>
                </div>
            </div>
        </div>
    
	<?php
	endforeach;
}
coder
1149 gün önce

Merhaba.

Burada ajax kullanılarak il ilçe uygulaması anlatılmış.
İl seçildikten sonra seçilen il'e ait ilçeler listeleniyor.

Sen il kısmını kategori, ilçe kısmını da ilanlar olarak düşün.

Videoyu izleyerek mantığını anlayabilirsiniz.