Merhaba, doubleclick olayına çift tıklayınca açılan textarea ekranına kullanıcı birşeyler yazsın ve ok basınca veritabanına girilen texti kaydetsin istiyorum. aşağıda yapmaya çalıştığım kodlar var. ok basınca girilen text islem.php sayfasına post ediliyor ama aynı satırdaki data-id değerini bir türlü okutamadım. Yardımcı olursanız sevinirim.
<script>
function myNotes(){
Swal.fire({
title: "Not Girişi",
text: "Grafiker için not yazabilirsiniz!",
input: 'textarea',
showCancelButton: true
}).then((result) => {
if (result.value) {
<script> $("input[name='siparisGrafiker']").on("dblclick", function () { let bid = $(this).data("id") Swal.fire({ title: "Not Girişi", text: "Grafiker için not yazabilirsiniz!", input: 'textarea', showCancelButton: true, cancelButtonText: 'İptal', confirmButtonText: 'Kaydet', showLoaderOnConfirm: true, allowOutsideClick: () => !Swal.isLoading(), preConfirm(inputValue) { return $.ajax('islem.php', { type: "POST", dataType: "json", data:{ not: inputValue, grfnot: bid // id değerini de bir post parametresi olarak gönderdim, isterseniz yine url nin sonuna ekleyebilirsiniz } }) }, inputValidator(inputValue) { if (!inputValue) { return 'Boş not gönderemezsiniz!' } } }).then((e) => { if (e.isConfirmed) { if (e.value.status) { // Eğer sunucudan gelen JSON FORMATINDAKİ yanıtın status değeri true ise, yani arka taraftaki işlem başarılı olmuşsa /*new PNotify({ title: 'Tebrikler!', text: 'Notunuz kaydedilmiştir', type: 'success', styling: 'bootstrap3', delay: 6000, icon:false })*/ console.log('İşlem başarılı') } else { // Başarılı olmamışsa yapılacak işlemler console.log('İşlem başarısız') } } }) }) </script>
// islem.php tarafı if (isset($_POST['grfnot'])) { // Postu bu şekilde yakalayın $id = $_POST['grfnot']; $not = $_POST['not'];
// verileri işleyin
// Eğer işlem başarılı ise şu yanıtı döndürün $response = [ 'status' => true ];
// İşlem başarısız ise şu yanıtı döndürün $response = [ 'status' => false ];
// burada javascripte yanıt verin echo json_encode($response); }
Abi son bir sorum olacak. MySQL kaydettiğim veriyi sweetalert textarea içine nasıl çekebilirim acaba? Yani bu alana girilen bilgiyi ben veritabanına update ile güncelleme yaptırıyorum. Kullanıcı önceden girilen texti görmesini nasıl sağlayabilirim acaba?
$("input[name='siparisGrafiker']").on("dblclick", function () { let bid = $(this).data("id")
$.post('islem.php', { // Öncesinde bu id değerini post ediyoruz pjhp tarafında $_POST['eskiVeri'] şeklinde yakalayabilirsiniz eskiVeri: bid }).then(data => { // PHP den gelen yanıtı yakalıyoruz, direkt olarak notun kendisini echo ile yazdırın, bu kısımda json olmasın, yani gerek yok, yine bir status yapısıyla kontrol edebilirsiniz ama gerek yok dediğim gibi Swal.fire({ title: "Not Girişi", text: "Grafiker için not yazabilirsiniz!", input: 'textarea', inputValue: data, // Gelen yanıtı textarea içine yazıyoruz showCancelButton: true, cancelButtonText: 'İptal', confirmButtonText: 'Kaydet', showLoaderOnConfirm: true, allowOutsideClick: () => !Swal.isLoading(), preConfirm(inputValue) { return $.ajax('islem.php', { type: "POST", dataType: "json", data:{ not: inputValue, grfnot: bid // id değerini de bir post parametresi olarak gönderdim, isterseniz yine url nin sonuna ekleyebilirsiniz } }) }, inputValidator(inputValue) { // Ama bu sefer farklı olarak şöyle bir kontrol daha ekleyelim, db den gelen bilgi boş ise textarea boş bırakılamasın // Ama boş değilse kullanıcı yanıtını silmesi anlamında boş gönderilebilsin if (!inputValue && !data.length) { return 'Boş not gönderemezsiniz!' } }, footer: data.length ? 'Boş bırakıp onaylarsanız notunuz silinecektir' : undefined // burası da opsiyonel bilgi }).then((e) => { if (e.isConfirmed) { if (e.value.status) { // Eğer sunucudan gelen JSON FORMATINDAKİ yanıtın status değeri true ise, yani arka taraftaki işlem başarılı olmuşsa /*new PNotify({ title: 'Tebrikler!', text: 'Notunuz kaydedilmiştir', type: 'success', styling: 'bootstrap3', delay: 6000, icon:false })*/ console.log('İşlem başarılı') } else { // Başarılı olmamışsa yapılacak işlemler console.log('İşlem başarısız') } } }) }) })
islem.php tarafı if (isset($_POST['eskiVeri'])) { // Gelen id değeri ile verriyi veri tabanından çekip yazdırın echo 'veri tabanından gelen veri'; }
if (isset($_POST['grfnot'])) { // Postu bu şekilde yakalayın $id = $_POST['grfnot']; $not = $_POST['not'];
echo $not; // verileri işleyin
// Eğer işlem başarılı ise şu yanıtı döndürün $response = [ 'status' => true ];
// İşlem başarısız ise şu yanıtı döndürün $response = [ 'status' => false ];
// burada javascripte yanıt verin echo json_encode($response); }