• 24-02-2023, 00:26:59
    #1
    Merhaba Arkadaşlar
    Emlak eklerken Emlak Tipi Seçeneğinde Ana Kategoriler Geliyor Emlak tipin dede Seçilen Ana Kategoriye ait alt kategoriler geliyor buraya kadar her güzel, emlakekle.php sayfasını aynı zaman Emlak Düzenleme olarakta kullanıyorum burada herhangi bir sıkıntı yok, Ana kategori seçeneği seçili geliyor ve ana kategoriye görede alt kategori geliyor, ama Emlak Eklediğim zaman, burada sıkıntı Emlak Tipi Seçeneğini seçmediğim halde Emlak cinsi seçeneği boş olması gerekirken, Ana kategori seçenekleri çıkıyor, kod bloğum ve ekran resim görüntüsü aşağıdaki gibi bu konuda yardımlarınızı bekliyorum.

    emlakekle.php sayfası içerisindeki javascript kodu
    <script type="text/javascript">
        $(document).ready(function (){
            $("#secenek").change(function (){
                let inputValue = $("#secenek option:selected").val();
                var url = "data/emlakcinsi.php";
                var data = {
                    sehirsearch: "search",
                    altid: inputValue
                }
                $.post(url, data, function(response){
                    $('#katyaz').html(response);
                });
            });
        });
        $(document).ready(function (){
            let inputValue = $("#secenek option:selected").val();
            var url = "data/emlakcinsi.php";
            var data = {
                sehirsearch: "search",
                anaKategori: inputValue
            }
            $.post(url, data, function(response){
                $('#katyaz').html(response);
            });
        });
    </script>
    emlakcinsi.php
    <?php
    require_once "/baglan.php";
    require_once "/fnc.php";
    $altid = $_POST["altid"];
    $find = "SELECT * FROM emlak_kategori WHERE ustid=? AND dil='".$_SESSION["admin_dil"]."' ORDER BY sira ASC";
    $query = $db->prepare($find);
    $query->execute([$altid]);
    $bislem = $query->fetchALL(PDO::FETCH_ASSOC);
    echo "<option>Emlak Tipi Seçiniz</option>";
    foreach ($bislem as $row){
        $sorgu = $db->prepare("SELECT * FROM emlaklar WHERE dil='".$_SESSION["admin_dil"]."' AND kategori_cinsi=?");
        $sorgu->execute([$row['id']]);
        $sonuc = $sorgu->fetch(PDO::FETCH_ASSOC);
        echo '<option value="'.$row['id'].'">'.$row['adi'].'</option>';
    }
    if(isset($_POST["anaKategori"])){
        $anakateogriID = $_POST["anaKategori"];
        $find = "SELECT * FROM emlak_kategori WHERE ustid=? AND  dil='".$_SESSION["admin_dil"]."' ORDER BY sira ASC";
        $query = $db->prepare($find);
        $query->execute([$anakateogriID]);
        $bislem = $query->fetchALL(PDO::FETCH_ASSOC);
        foreach ($bislem as $row){
            $sorgu = $db->prepare("SELECT * FROM emlaklar WHERE dil='".$_SESSION["admin_dil"]."' AND kategori_cinsi=?");
            $sorgu->execute([$row['id']]);
            $sonuc = $sorgu->fetch(PDO::FETCH_ASSOC);
            $select = $sonuc['kategori_cinsi'] == $row['id'] ? 'selected' : null;
            echo '<option '.$select.' value="'.$row['id'].'">'.$row['adi'].'</option>';
        }
    }
    ?>
  • 24-02-2023, 00:49:42
    #2
        $(document).ready(function() {
            // JavaScripti bu şekilde düzenlersek daha okunabilir olacağını düşünüyorum
            $("#secenek").change(function() {
                $.ajax({
                    url: "data/emlakcinsi.php",
                    type: "POST",
                    dataType: "HTML",
                    data: {
                        sehirsearch: "search",
                        altid: $("#secenek option:selected").val()
                    },
                    success: function(response) {
                        $("#katyaz").html(response);
                    }
                });
            });
    
            // Aşağıdaki request isteği muhtemelen düzenleme sayfası için koyulmuş, haliyle dolu olup olmadığını kontrol ettirip o şekilde isteği gönderelim. PHP sayfasında değerin boş olup olmadığına bakılmamış sadece varlığı sorgulanmış.
            let anaKategori = $("#secenek option:selected").val();
    
            if (anaKategori != "") {
                $.ajax({
                    url: "data/emlakcinsi.php",
                    type: "POST",
                    dataType: "HTML",
                    data: {
                        sehirsearch: "search",
                        anaKategori: anaKategori
                    },
                    success: function(response) {
                        $("#katyaz").html(response);
                    }
                });
            }
        });
  • 24-02-2023, 00:53:18
    #3
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
        $(document).ready(function() {
            // JavaScripti bu şekilde düzenlersek daha okunabilir olacağını düşünüyorum
            $("#secenek").change(function() {
                $.ajax({
                    url: "data/emlakcinsi.php",
                    type: "POST",
                    dataType: "HTML",
                    data: {
                        sehirsearch: "search",
                        altid: $("#secenek option:selected").val()
                    },
                    success: function(response) {
                        $("#katyaz").html(response);
                    }
                });
            });
    
            // Aşağıdaki request isteği muhtemelen düzenleme sayfası için koyulmuş, haliyle dolu olup olmadığını kontrol ettirip o şekilde isteği gönderelim. PHP sayfasında değerin boş olup olmadığına bakılmamış sadece varlığı sorgulanmış.
            let anaKategori = $("#secenek option:selected").val();
    
            if (anaKategori != "") {
                $.ajax({
                    url: "data/emlakcinsi.php",
                    type: "POST",
                    dataType: "HTML",
                    data: {
                        sehirsearch: "search",
                        anaKategori: anaKategori
                    },
                    success: function(response) {
                        $("#katyaz").html(response);
                    }
                });
            }
        });
    Merhaba Hocam
    php konusunda yardımcı olabilirmisin,
  • 24-02-2023, 00:55:28
    #4
    Görseldeki kodların bulunduğu HTML alanın PHP kodlarını paylaşın lütfen
  • 24-02-2023, 12:37:10
    #5
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Görseldeki kodların bulunduğu HTML alanın PHP kodlarını paylaşın lütfen
    emlakekle.php
    <div class="form-group row mb-2">
                                    <div class="col-lg-3 bg-arac text-right">
                                        <label class="col-form-label mb-0" for="kategori">Emlak Tipi</label>
                                    </div>
                                    <div class="col-lg-9">
                                        <?php $degerler = $sonuc["kategori"];?>
                                        <select id="secenek" class="js-example-basic-multiple form-control-sm" name="kategori" style="width:100%">
                                            <option>Seçiniz</option>
                                            <?php
                                            if (isset($_GET["islem"]) == "duzenle"){
                                                tipdegerduz($sonuc["kategori"]);
                                            } else {
                                                tipdeger(0,0,$degerler);
                                            }
                                            ?>
                                        </select>
                                    </div>
                                </div>
                                <div class="form-group row mb-2">
                                    <div class="col-lg-3 bg-arac text-right">
                                        <label class="col-form-label mb-0" for="kategori_cinsi">Emlak Cinsi</label>
                                    </div>
                                    <div class="col-lg-9">
                                        <select class="js-example-basic-multiple form-control-sm" name="kategori_cinsi" id="katyaz" style="width:100%">
                                        </select>
                                    </div>
                                </div>
    fnc.php
    <?php
    function tipdeger($ustid = 0){
        global $db;
        $query = $db->prepare("SELECT * FROM emlak_kategori WHERE ustid=0 AND dil='".$_SESSION["admin_dil"]."' order by sira asc");
        $query->execute();
        $islem     = $query->fetchALL(PDO::FETCH_ASSOC);
        foreach ($islem as $liste){
            $sorgu = $db->prepare("SELECT * FROM emlaklar");
            $sorgu->execute();
            $sonuc = $sorgu->fetch(PDO::FETCH_ASSOC);
            echo '<option value="'.$liste['id'].'">'.$liste['adi'].'</option>';
        }
    }
    function tipdegerduz($id){
        global $db;
        $query = $db->prepare("SELECT * FROM emlak_kategori WHERE id=$id AND  dil='".$_SESSION["admin_dil"]."' order by sira asc");
        $query->execute();
        $islem     = $query->fetchALL(PDO::FETCH_ASSOC);
        foreach ($islem as $liste){
            $sorgu = $db->prepare("SELECT * FROM emlaklar");
            $sorgu->execute();
            $sonuc = $sorgu->fetch(PDO::FETCH_ASSOC);
            if($id==$liste['id']){
                echo '<option selected '.' value="'.$liste['id'].'">'.$liste['adi'].'</option>';
            } else {
                echo '<option '.' value="'.$liste['id'].'">'.$liste['adi'].'</option>';
            }
        }
    }
    ?>
  • 24-02-2023, 12:48:34
    #6
    1. Emlak eklerken Emlak Tipi Seçeneği'nde ana kategoriler geliyor, ancak Emlak tipinde seçilen ana kategoriye ait alt kategoriler geliyor. Bu doğru çalışıyor.
    2. emlakekle.php sayfasını aynı zamanda Emlak Düzenleme olarak da kullanıyorum ve burada herhangi bir sıkıntı yok. Ana kategori seçeneği seçili geliyor ve ana kategoriye göre alt kategori geliyor.
    3. Ancak Emlak Eklediğim zaman, Emlak Tipi Seçeneği'ni seçmeden önce Emlak cinsi seçeneği boş olması gerekiyor. Ancak burada, Ana kategori seçenekleri çıkıyor.
      Bu sorunuzun cevabının çözümü yukarıda verdiğim JavaScript kodunda yer alıyor. Önceki ajax isteği direkt olarak çalışıyor ve kategoriler kategori ID boş geldiğinden tamamı listeleniyor.
      JavaScript kodları değiştirdiğinizde kaynak'tan request kodunun gitmediğine emin olun.
    4. Bu konuda yardımlarınızı bekliyorum. Aşağıdaki kod bloğum ve ekran resim görüntüsü ile ilgili olarak ne yapmam gerektiğini söyleyebilir misiniz?
    Alıntı
    Select kodları içerisinde PHP kodlarını şu şekilde düzenleyelim.
    <?php
    if (isset($_REQUEST["islem"]) && $_GET["islem"] == "duzenle") {
        tipdegerduz($sonuc["kategori"]);
    } else {
        tipdeger($degerler);
    }
    ?>
  • 24-02-2023, 13:01:40
    #7
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    1. Emlak eklerken Emlak Tipi Seçeneği'nde ana kategoriler geliyor, ancak Emlak tipinde seçilen ana kategoriye ait alt kategoriler geliyor. Bu doğru çalışıyor.
    2. emlakekle.php sayfasını aynı zamanda Emlak Düzenleme olarak da kullanıyorum ve burada herhangi bir sıkıntı yok. Ana kategori seçeneği seçili geliyor ve ana kategoriye göre alt kategori geliyor.
    3. Ancak Emlak Eklediğim zaman, Emlak Tipi Seçeneği'ni seçmeden önce Emlak cinsi seçeneği boş olması gerekiyor. Ancak burada, Ana kategori seçenekleri çıkıyor.
      Bu sorunuzun cevabının çözümü yukarıda verdiğim JavaScript kodunda yer alıyor. Önceki ajax isteği direkt olarak çalışıyor ve kategoriler kategori ID boş geldiğinden tamamı listeleniyor.
      JavaScript kodları değiştirdiğinizde kaynak'tan request kodunun gitmediğine emin olun.
    4. Bu konuda yardımlarınızı bekliyorum. Aşağıdaki kod bloğum ve ekran resim görüntüsü ile ilgili olarak ne yapmam gerektiğini söyleyebilir misiniz?
    <?php
    if (isset($_REQUEST["islem"]) && $_GET["islem"] == "duzenle") {
        tipdegerduz($sonuc["kategori"]);
    } else {
        tipdeger($degerler);
    }
    ?>
    Hocam yine aynı değişen bir şey yok Emlak Cinsi bölümünde Ana kategoriler geliyor
  • 24-02-2023, 13:03:13
    #8
    AnyDesk pm atabilirseniz kontrol edeyim.
  • 24-02-2023, 14:52:05
    #9
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    AnyDesk pm atabilirseniz kontrol edeyim.
    Hocam posta girişin dolu olduğundan dolayı mesaj atamıyorum, bağlanabilirsin Hocam