Javascript ile input value değerini Yenilemek Mümkün mü?
php ile value değerine bir değer atıyorum
sonra işlem yaptırıyorum sayfa yenilenmiyor hiç. bir sorun yok
gelen değeri php kontrol ettirdikten sonra işlem olumlu ise sonlandırıyorum.
fakat sayfa yenilenmediği için değer aynı kalıyor ve
tekrar işlem gönderdiğimde değer silindiği için kontrolden düşüyor
false dönüyor.
bunun için ne yapabilirim?
Merhaba. Sorunuza varsayımsal bir cevap vermek istedim ama algoritmanızı nasıl kurduğunuzla ilgil çok fazla ihtimal var.
Sorunuzu biraz daha detaylandırmalısınız. "Bu şekilde bu sayfadan bu sayfaya veri gönderiyorum, bu şekilde işlemden geçirip bu şekilde sonlandırıyorum ve şu olsun istiyorum" şeklinde, kodlarınızdan da örnekler paylaşabilirseniz yardımcı olalım.
back-end dünyasında yeniyseniz bizim tahmin edemeyeceğimiz şekilde yanlış algoritma kurmuş olabilirsiniz.
Eğer bir input'un value'sini javascript ile değiştirmek istiyorsanız:
$myInput = $("#my-input");
const myInput_currentValue = $myInput.val(); // Input'un mevcuttaki value'sini aldık.
const myInput_newValue = myInput_currentValue.replaceAll(",",""); // Aldığımız değerdeki "," karakterlerini sildik.
$myInput.val(myInput_newValue); // Yeni oluşturduğumuz değeri input'un value'sine yazdık.
Veya bir input'ta bir değişiklik olduğu zaman bu işlemi yapmak istiyoruz diyelim:
$myInput = $("#my-input");
$myInput.on("input",function(){ // Input'a herhangi bir giriş olduğunda "input" adlı event çalışır.
const currentValue = $(this).val(); // Bu input'un value değerini aldık.
const newValue = currentValue.replaceAll(",",""); // Aldığımız değerdeki "," karakterlerini sildik.
$(this).val(newValue); // Bu input'un value'sine yeni değeri yazdık.
});
Ama mesela burada PHP kullanamazsınız. Sayfa kullanıcıya ulaştığı anda PHP ile bağlantısı sonlanır. Siz PHP'ye yeni bir istek atmadığınız sürece PHP sizin sayfanıza yapılan değişikliklerden haberdar olmaz.
Yani şöyle bir kullanımda verinin değiştiğini göremezsiniz:
<?php $myValue = "Merhaba, Dünya!"; ?>
<input type="text" value="<?=$myValue?>" />
<script>
$myInput = $("#my-input");
$myInput.on("input",function(){ // Input'a herhangi bir giriş olduğunda "input" adlı event çalışır.
<?php $newValue = str_replace(",","",$myValue); ?>
$(this).val("<?=$newValue?>");
});
</script>
Çünkü tarayıcı sizin PHP kodlarınızı göremez. PHP kodlarınız sunucu tarafında işlenip sayfanız dümdüz bir string'e dönüştürülerek istemciye gönderilir. İstemci (tarayıcı) sizin <?php ?> gibi ifadelerinizi veya php değişkenlerinizi görmez. PHP kendine ait olan işlemlerin hepsini sunucu tarafında halledip gönderir.
Yani siz yukarıdaki kodu yazdığınızda aslında tarayıcıya şu kod iletilmiş olur:
<input type="text" value="Merhaba, Dünya!" />
<script>
$myInput = $("#my-input");
$myInput.on("input",function(){ // Input'a herhangi bir giriş olduğunda "input" adlı event çalışır.
$(this).val("Merhaba Dünya!");
});
</script>
Gördüğünüz gibi sunucu tarafında PHP yapacağı her şeyi yaptı ve kendini yazdığınız koddan tamamen arındırdıktan sonra sayfayı tarayıcıya gönderdi.
Böylece input'unuzda her "input" event'i gerçekleştiğinde aslında input'un değerini direkt "Merhaba Dünya!" olarak değiştir demiş olduk.