PHP listeleme işlemi
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
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Tekrar merhaba.
Bir örnek yapmaya çalıştım.
Veritabanı yapımız.
ilan_kategoriler tablosu
kategori_id (int) | kategori_baslik (varchar) |
---|---|
1 | Satılık Ev |
2 | Kiralık Ev |
3 | Satılık Arsa |
ilanlar tablosu
ilan_id (int) | ilan_kategori_id (int) | ilan_baslik (varchar) |
---|---|---|
1 | 1 | Satılık Ev 1 |
2 | 1 | Satılık Ev 2 |
3 | 2 | Kiralık Ev 1 |
4 | 2 | Kiralık Ev 2 |
5 | 3 | Satılık Arsa 1 |
6 | 3 | Satı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;
}