lostyazilim
tr.link

web formunda textboxtan çıkınca php kodu çalıştırmak

4 Mesajlar 594 Okunma
acebozum
tr.link

sedatuysal52 sedatuysal52 WM Aracı Kullanıcı
  • Üyelik 06.01.2024
  • Yaş/Cinsiyet 43 / E
  • Meslek memur
  • Konum Niğde
  • Ad Soyad S** U**
  • Mesajlar 38
  • Beğeniler 1 / 2
  • Ticaret 0, (%0)

web formumda örneğin t.c. no textbox dan çıkınca php kodlarımı çalıştırarak veritabanından t.c. no ile eşleşen verileri form elemanlarına yazdırmak istiyorum. Eşleşen T.C. no yok ise bir alt textboxdan veri girmeye devam etmek istiyorum. Örnek kodu olan varsa paylaşırsa sevinirim.

 

 

elektronikssl
webimgo

129926 129926 WM Aracı Anonim Üyelik
  • Üyelik 30.05.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 434
  • Beğeniler 211 / 211
  • Ticaret 41, (%100)

sedatuysal52 adlı üyeden alıntı

web formumda örneğin t.c. no textbox dan çıkınca php kodlarımı çalıştırarak veritabanından t.c. no ile eşleşen verileri form elemanlarına yazdırmak istiyorum. Eşleşen T.C. no yok ise bir alt textboxdan veri girmeye devam etmek istiyorum. Örnek kodu olan varsa paylaşırsa sevinirim.

Merhaba

bunun için js kullanmanız gerekiyor. textbox alanına yazacağınız bilgiyi ile veritabanından arayacak ve eşleşenleri diğer alanlara yazdıracak şekilde java script ile yapabilirsiniz. Size aşağıda java script tarafı için örnek kodu yazıyorum. Form kısmını ve PHP kodlarını (fonksiyonları) buna göre uyarlayabilirsiniz.

Örnek kod:

function checkTcNo() {
    var tcNo = document.getElementById('tcNo').value;
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'check_tcno.php'); //  T.C numarasını kontrol edecek olan bir sayfa
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.function() {
        if (xhr.status === 200) {
            var response = xhr.responseText;
            if (response === 'exists') {
                // T.C. no veritabanında mevcutsa, ilgili verileri form elemanlarına yazdır
                document.getElementById('result').innerHTML = 'T.C. no mevcut.';
                // Diğer verileri doldurma fonksiyonu çağrılabilir
                fillFormWithData();
            } else {
                // T.C. no veritabanında mevcut değilse, alt metin kutusuna geçiş yap
                document.getElementById('result').innerHTML = 'T.C. no mevcut değil.';
            }
        }
    };
    xhr.send('tcNo=' + tcNo);
}

function fillFormWithData() {
    // Verileri form elemanlarına doldurma kodu buraya gelebilir
}
sedatuysal52

kişi bu mesajı beğendi.

sedatuysal52 sedatuysal52 WM Aracı Kullanıcı
  • Üyelik 06.01.2024
  • Yaş/Cinsiyet 43 / E
  • Meslek memur
  • Konum Niğde
  • Ad Soyad S** U**
  • Mesajlar 38
  • Beğeniler 1 / 2
  • Ticaret 0, (%0)

ReşatTürksoy adlı üyeden alıntı

Merhaba

bunun için js kullanmanız gerekiyor. textbox alanına yazacağınız bilgiyi ile veritabanından arayacak ve eşleşenleri diğer alanlara yazdıracak şekilde java script ile yapabilirsiniz. Size aşağıda java script tarafı için örnek kodu yazıyorum. Form kısmını ve PHP kodlarını (fonksiyonları) buna göre uyarlayabilirsiniz.

Örnek kod:

function checkTcNo() {
    var tcNo = document.getElementById('tcNo').value;
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'check_tcno.php'); //  T.C numarasını kontrol edecek olan bir sayfa
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.function() {
        if (xhr.status === 200) {
            var response = xhr.responseText;
            if (response === 'exists') {
                // T.C. no veritabanında mevcutsa, ilgili verileri form elemanlarına yazdır
                document.getElementById('result').innerHTML = 'T.C. no mevcut.';
                // Diğer verileri doldurma fonksiyonu çağrılabilir
                fillFormWithData();
            } else {
                // T.C. no veritabanında mevcut değilse, alt metin kutusuna geçiş yap
                document.getElementById('result').innerHTML = 'T.C. no mevcut değil.';
            }
        }
    };
    xhr.send('tcNo=' + tcNo);
}

function fillFormWithData() {
    // Verileri form elemanlarına doldurma kodu buraya gelebilir
}

Reşat hocam, form action ile başka sayfada kaydetme, listeleme ve güncelleme yaptım.

Ancak aynı form üzerinde textboxa T.C. no girilip JavaScript çalıştırıp veritabanından T.C. no sorgu yaparak eşleşirse aynı formdaki alanlara yazdırma hiç yapmadım. Konuyla ilgili örnek hazır php sayfalarınız varsa kendi siteme daha rahat uyarlar ve konuyu kavramış olurum. tekrar çok teşekkür ederim. Hakkınızı helal edin. Saygılarımla...

 

 

129926 129926 WM Aracı Anonim Üyelik
  • Üyelik 30.05.2021
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar 434
  • Beğeniler 211 / 211
  • Ticaret 41, (%100)

sedatuysal52 adlı üyeden alıntı

Reşat hocam, form action ile başka sayfada kaydetme, listeleme ve güncelleme yaptım.

Ancak aynı form üzerinde textboxa T.C. no girilip JavaScript çalıştırıp veritabanından T.C. no sorgu yaparak eşleşirse aynı formdaki alanlara yazdırma hiç yapmadım. Konuyla ilgili örnek hazır php sayfalarınız varsa kendi siteme daha rahat uyarlar ve konuyu kavramış olurum. tekrar çok teşekkür ederim. Hakkınızı helal edin. Saygılarımla...

Maalesef hazır kodlar elimin altında yok. Ama size verdiğim örnekte dikkat ederseniz 4. satırda bir php sayfa var.
Siz texttbox alanına yazdığınız örneğin T.C. Kimlik noyu yazıp textbox salanından çıktıktan sonra post edilen check_tcno.php sayfasından sonucu ajax olarak alabilirsiniz. alacağınız sonucu da örnekte sondan olan fillFormWithData fonksiyonu ile diğer form alanlarına yazdıracaksınız.

Biraz karışık gelebilir ama her adımı consol log yazdırarak daha rahat bir şekilde adım adım ilerleyerek işi çözebilirsiniz.

 

 

hozlıca bir örnek yazdım size. Burada veri tabanı bağlantısı yok. imitasyon yapılarak veritabanından alıyormuş gibi test bilgilerle bir örnektir.
T.C. Kimlik no yazdığınızda Ad Soyad alanlarını otomatik doldurur:

<?php
// TC No'ya göre imitasyon veri döndüren fonksiyon
function getMockData($tcno) {
    // Örnek bir veri dizisi
    $mockData = array(
        "12345678901" => array("ad" => "Ahmet", "soyad" => "Yılmaz"),
        "98765432109" => array("ad" => "Ayşe", "soyad" => "Kara"),
        "45678912305" => array("ad" => "Mehmet", "soyad" => "Demir")
    );

    // Eğer TC No dizide varsa ilgili veriyi döndür, yoksa false döndür
    return isset($mockData[$tcno]) ? $mockData[$tcno] : false;
}

if ($_SERVER["REQUEST_METHOD"] == "GET") {
    if (isset($_GET['tcno'])) {
        $tcno = $_GET['tcno'];
        $data = getMockData($tcno);
        if ($data) {
            echo json_encode(["success" => true, "ad" => $data['ad'], "soyad" => $data['soyad']]);
        } else {
            echo json_encode(["success" => false]);
        }
        exit;
    }
}
?>

<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>T.C. No Kontrolü</title>
</head>
<body>
    <form id="myForm">
        T.C. No: <input type="text" id="tcno" "checkTCNo()">
        Ad: <input type="text" id="ad">
        Soyad: <input type="text" id="soyad">
    </form>

    <script>
    function checkTCNo() {
        var tcno = document.getElementById("tcno").value;
        var xhttp = new XMLHttpRequest();
        xhttp.function() {
            if (this.readyState == 4 && this.status == 200) {
                var data = JSON.parse(this.responseText);
                if (data.success) {
                    document.getElementById("ad").value = data.ad;
                    document.getElementById("soyad").value = data.soyad;
                } else {
                    alert("Girilen T.C. numarasına ait veri bulunamadı!");
                    // Bir sonraki input alanına odaklanmak için
                    document.getElementById("tcno").focus();
                }
            }
        };
        xhttp.open("GET", "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>?tcno=" + tcno, true);
        xhttp.send();
    }
    </script>
</body>
</html>

Mesaj 1 defa düzenlendi. Son düzenleyen: ReşatTürksoy (25.02.2024 00:48)

 

 

wmaraci
wmaraci
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al