• 21-05-2024, 11:08:57
    #1
    merhaba arkadaşlar ajax ile live search işlemini yapıyorum.
    url: 'buraya index.php yazınca çalışmıyor', aynı sayfaya post ettirip veriyi çekmek istiyorum

    php kodum
    if (isset($_POST['query'])) {
                        $query = $_POST['query'];
                        $sorgu = $db->prepare("SELECT user_id, username FROM users WHERE username LIKE ?");
                        $sorgu->execute(['%' . $query . '%']);
                        $users = $sorgu->fetchAll(PDO::FETCH_ASSOC);
                        if (count($users) > 0) {
                            foreach ($users as $user) {
                                echo '<option value="' . $user['user_id'] . '">' . htmlspecialchars($user['username']).'</option>';
                            }
                        } else {
                            echo '<li>Kullanıcı bulunamadı</li>';
                        }
                        exit;
                    }
    script kodum

    $(document).ready(function(){
                        $("#user_search").on("input", function(){
                            var query = $(this).val();
                            if (query.length > 0) {
                                $.ajax({
                                    url: 'index.php',
                                    type: "POST",
                                    data: { query: query },
                                    success: function(data){
                                        $("#userList").fadeIn();
                                        $("#userList").html(data);
                                    }
                                });
                            } else {
                                $("#userList").fadeOut();
                                $("#userList").html("");
                            }
                        });
                        $(document).on("click", "option", function(){
                            $("#user_search").val($(this).text());
                            $("#user_id").val($(this).data("id"));
                            $("#userList").fadeOut();
                        });
                    });
    burada ben index.php yani aynı sayfa yerine başka sayfaya post ettirirsem çalışıyor. ama ben aynı sayfada post ettirmek istiyorum

    denediğim işlemler


    <?php echo $_SERVER["PHP_SELF"]; ?> bunu denedim
    window.location.href bunu denedim
    'index.php' bunu denedim
    formAction bunu denedim
    '' boş bırakarak denedim
  • Kabul Edilen Cevap
    • Normal şartlarda verdiğim kodun çalışması gerekiyor. Eğer çalışmaz ise 2 ihtimal vardır. 1: jquery sayfaya dahil etmedin, 2: input veya id de sorun var.
  • 21-05-2024, 11:11:47
    #2
    $(document).ready(function(){
                        $("#user_search").on("input", function(){
                            var query = $(this).val();
                            if (query.length > 0) {
                                $.ajax({
                                    url: window.location.href, 
                                    type: "POST",
                                    data: { query: query },
                                    success: function(data){
                                        $("#userList").fadeIn();
                                        $("#userList").html(data);
                                    }
                                });
                            } else {
                                $("#userList").fadeOut();
                                $("#userList").html("");
                            }
                        });
                        $(document).on("click", "option", function(){
                            $("#user_search").val($(this).text());
                            $("#user_id").val($(this).data("id"));
                            $("#userList").fadeOut();
                        });
                    });
    olarak deneyebilir misiniz?
  • 21-05-2024, 11:12:31
    #3
    YasinBoyraz adlı üyeden alıntı: mesajı görüntüle
    $(document).ready(function(){
                        $("#user_search").on("input", function(){
                            var query = $(this).val();
                            if (query.length > 0) {
                                $.ajax({
                                    url: window.location.href,
                                    type: "POST",
                                    data: { query: query },
                                    success: function(data){
                                        $("#userList").fadeIn();
                                        $("#userList").html(data);
                                    }
                                });
                            } else {
                                $("#userList").fadeOut();
                                $("#userList").html("");
                            }
                        });
                        $(document).on("click", "option", function(){
                            $("#user_search").val($(this).text());
                            $("#user_id").val($(this).data("id"));
                            $("#userList").fadeOut();
                        });
                    });
    olarak deneyebilir misiniz?
    bunu denedim hocam olmadı maalesef
  • 21-05-2024, 11:16:42
    #4
    $(document).ready(function(){
                        $("#user_search").on("input", function(){
                            var query = $(this).val();
                            if (query.length > 0) {
                                $.ajax({
                                    url: '<?php echo $_SERVER["PHP_SELF"]; ?>',
                                    type: "POST",
                                    data: { query: query },
                                    success: function(data){
                                        $("#userList").fadeIn();
                                        $("#userList").html(data);
                                    }
                                });
                            } else {
                                $("#userList").fadeOut();
                                $("#userList").html("");
                            }
                        });
                        $(document).on("click", "option", function(){
                            $("#user_search").val($(this).text());
                            $("#user_id").val($(this).data("id"));
                            $("#userList").fadeOut();
                        });
                    });
    belki bu şekilde olabilir hocam. Saçma bir trick ama iş görür
  • 21-05-2024, 11:19:25
    #5
    YasinBoyraz adlı üyeden alıntı: mesajı görüntüle
    $(document).ready(function(){
                        $("#user_search").on("input", function(){
                            var query = $(this).val();
                            if (query.length > 0) {
                                $.ajax({
                                    url: '<?php echo $_SERVER["PHP_SELF"]; ?>',
                                    type: "POST",
                                    data: { query: query },
                                    success: function(data){
                                        $("#userList").fadeIn();
                                        $("#userList").html(data);
                                    }
                                });
                            } else {
                                $("#userList").fadeOut();
                                $("#userList").html("");
                            }
                        });
                        $(document).on("click", "option", function(){
                            $("#user_search").val($(this).text());
                            $("#user_id").val($(this).data("id"));
                            $("#userList").fadeOut();
                        });
                    });
    belki bu şekilde olabilir hocam. Saçma bir trick ama iş görür
    olmadı hocam sayfanın mevcut linkini yazınca işe yaramıyor

    <?php echo $_SERVER["PHP_SELF"]; ?> bunu denedim
    window.location.href bunu denedim
    'index.php' bunu denedim
    formAction bunu denedim
    '' boş bırakarak denedim
  • 21-05-2024, 11:42:04
    #6
    function get_current_url() {
       $url = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
       $url .= isset($_SERVER['HTTP_HOST']) ? "://" . $_SERVER['HTTP_HOST'] : null;
       $url .= isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : null;
       return $url;
    }
    $(document).ready(function(){
        $("#user_search").on("input", function(){
            var query = $(this).val();
            if (query.length > 0) {
                $.ajax({
                    url: '<?=get_current_url();?>',
                    type: "POST",
                    data: { query: query },
                    success: function(data){
                        $("#userList").fadeIn();
                        $("#userList").html(data);
                    }
                });
            } else {
                $("#userList").fadeOut();
                $("#userList").html("");
            }
        });
        $(document).on("click", "option", function(){
            $("#user_search").val($(this).text());
            $("#user_id").val($(this).data("id"));
            $("#userList").fadeOut();
        });
    });
  • 21-05-2024, 11:44:31
    #7
    kazimolmez adlı üyeden alıntı: mesajı görüntüle
    function get_current_url() {
       $url = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
       $url .= isset($_SERVER['HTTP_HOST']) ? "://" . $_SERVER['HTTP_HOST'] : null;
       $url .= isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : null;
       return $url;
    }
    $(document).ready(function(){
        $("#user_search").on("input", function(){
            var query = $(this).val();
            if (query.length > 0) {
                $.ajax({
                    url: '<?=get_current_url();?>',
                    type: "POST",
                    data: { query: query },
                    success: function(data){
                        $("#userList").fadeIn();
                        $("#userList").html(data);
                    }
                });
            } else {
                $("#userList").fadeOut();
                $("#userList").html("");
            }
        });
        $(document).on("click", "option", function(){
            $("#user_search").val($(this).text());
            $("#user_id").val($(this).data("id"));
            $("#userList").fadeOut();
        });
    });
    Teşekkür ederim hocam bir deniyim bunu
  • 21-05-2024, 13:04:03
    #8
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    Normal şartlarda verdiğim kodun çalışması gerekiyor. Eğer çalışmaz ise 2 ihtimal vardır. 1: jquery sayfaya dahil etmedin, 2: input veya id de sorun var.