lostyazilim
tr.link

[yardım] Fonksiyonun İçindeki Koşulun Local Alanındaki Değişkene Başka Bir Fonksiyon İçinden Ulaşmak

4 Mesajlar 746 Okunma
acebozum
tr.link

Empat Empat OOWC Kullanıcı
  • Üyelik 11.04.2018
  • Yaş/Cinsiyet 24 / E
  • Meslek Web Development & SEO
  • Konum İzmir
  • Ad Soyad M** Ö**
  • Mesajlar 224
  • Beğeniler 39 / 39
  • Ticaret 4, (%75)
Merhaba.

Javascript dilinde aşağıdaki script'te fonksiyonun içindeki koşulun local alanındaki kdv değişkenine nasıl bir başka fonksiyonun içinden ulaşabilirim?

Ya da en basitinden fonksiyonun içindeki koşulun local alanındaki kdv değişkenini nasıl sayfanın global alanına çıkarabilirim?

En azından global alana çıkarabilirsem başka bir fonksiyonun local alanından erişim sağlayabilirim diye düşünüyorum.

Saatlerdir çözemedim bu meseleyi. return'la çıkaramıyorum. return'le çıkarmam gereken kdv değişkeni ve tutarHesapla fonksiyonu var. tutarHesapla fonksiyonunu geri döndürebiliyorum ama kdv değişkenini çıkaramıyorum. return'la sadece kdv değişkenini global alana çıkarmayı denedim olmadı. tutarHesapla fonksiyonuyla, kdv değişkenini yeni değişkenlere atayıp bu değişkenleri de diziye atayıp return'le dizi şeklinde dışarı çıkarmaya çalıştım, yine çıkmadı kdv değişkeni.

Sayfanın global alanında bir değişken tanımlayıp istediğim kdv değerini verip tutarHesapla fonksiyonunda o değeri hesaplatırsam script çalışıyor sorunsuz. Fakat bu durumda da seçilen ülke özelliği kullanılmamış oluyor. Ben seçilen ülkeye göre kdv değerlerinin değişik hesaplanmasını istiyorum.

Eğer anlamayanlar varsa script ile yapmak istediğim kullanıcının seçtiği para birimine ve ülkeye göre toplam tutarı USD, TL, EUR vb. cinslere dönüştürmek ve her ülke için belirlenmiş olan KDV miktarını üzerine eklemek.

Nerede hata yapıyorum ben?

Script:








<script>

var kullanicininSectigiParaBirimi = "EUR";
var kullanicininSepetininToplamTutari = 100;
var secilenUlke = "US";

function paraBirimi(birim, tutar){
if (birim=="TL"){
var kur = 1;

if (secilenUlke=="TR"){
var secilenUlkeKdvsi = 18;
}
else if(secilenUlke=="US"){
var secilenUlkeKdvsi = 10;
}
else if(secilenUlke=="UK"){
var secilenUlkeKdvsi = 12;
}
else {
document.write("HATA!")
}

var kdv = secilenUlkeKdvsi;
return tutarHesapla(kur, tutar);

}

else if(birim=="USD"){
var kur = 6;

if (secilenUlke=="TR"){
var secilenUlkeKdvsi = 18;
}
else if(secilenUlke=="US"){
var secilenUlkeKdvsi = 10;
}
else if(secilenUlke=="UK"){
var secilenUlkeKdvsi = 12;
}
else {
document.write("HATA!")
}

var kdv = secilenUlkeKdvsi;
return tutarHesapla(kur, tutar);
}

else if(birim=="EUR"){
var kur = 7;

if (secilenUlke=="TR"){
var secilenUlkeKdvsi = 18;
}
else if(secilenUlke=="US"){
var secilenUlkeKdvsi = 10
}
else if(secilenUlke=="UK"){
var secilenUlkeKdvsi = 12;
}
else {
document.write("HATA!")
}
var kdv = secilenUlkeKdvsi;
return tutarHesapla(kur, tutar);
}
}

function tutarHesapla(gelenKur, gelenTutar){
var hesap = gelenKur * gelenTutar;
var kdvTutari = hesap / 100 * kdv;
var sonuc = hesap + kdvTutari;
document.write("Toplam tutar: " + sonuc);
}

paraBirimi(kullanicininSectigiParaBirimi, kullanicininSepetininToplamTutari);







</script>



 

 

www.onurozden.com.tr - Onur Özden Web Çözümleri
elektronikssl
webimgo

kelebek kelebek WM Aracı Kullanıcı
  • Üyelik 11.05.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek Geliştirici
  • Konum Malatya
  • Ad Soyad E** K**
  • Mesajlar 3142
  • Beğeniler 60 / 764
  • Ticaret 5, (%100)
Şuan gece olduğu için kafam çok çalışmıyor. Biraz performans kaybı olabilir ama local storge kullanarak yapabilirsiniz. Veriyi bir keyle birlikte local storge'ye kaydedersiniz gerektiğinde değeri oradan çekersiniz. Yani bir nevi veri tabanı kaydı diyebiliriz.

Diğer yandan çalışır mı emin değilim fakat değeri parabirimini vs tanımladığınız alanda oluşturacağınız bir değişkene kayıt ederseniz sorun olmaması gerekli.
 

 

Empat Empat OOWC Kullanıcı
  • Üyelik 11.04.2018
  • Yaş/Cinsiyet 24 / E
  • Meslek Web Development & SEO
  • Konum İzmir
  • Ad Soyad M** Ö**
  • Mesajlar 224
  • Beğeniler 39 / 39
  • Ticaret 4, (%75)
Cevabınız için teşekkürler. Sorunu kdv değişkenini window.kdv şeklinde tanımlayarak çözdüm. Javascript'i yeni öğreniyorum. Herhangi proje yapmıyorum. Hayal gücüme göre bir script yazarak beyin fırtınası yapmak istedim.
 

 

www.onurozden.com.tr - Onur Özden Web Çözümleri

SancarSaran SancarSaran WM Aracı Kullanıcı
  • Üyelik 14.01.2018
  • Yaş/Cinsiyet 52 / E
  • Meslek Programcı
  • Konum İzmir
  • Ad Soyad S** S**
  • Mesajlar 319
  • Beğeniler 4 / 111
  • Ticaret 0, (%0)

var kdv = 0;

function hede()
{
kdv = 18;
}


Bu global erişim için yapman gereken. birden fazla kdv varsa


var kdv = {};

function hede()
{
kdv.TR = 18;
kdv.US = 10;
kdv.UK = 14.2;
}
Empat

kişi bu mesajı beğendi.

wmaraci
wmaraci
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al