JavaScript geçen fonksiyonlar ve bunları işleme arasında varibles

3 Cevap php

Ben ne kullanıcının seçtiği (Bölge, hizmet (pre 12, vb) ve ağırlık) bağlı olarak, teslim maliyetini döndüren bir JavaScript tabanlı sayfa üzerinde çalışıyorum. Ben sadece JS bilmiyorum ben yolumu muddled var.

Benim sorular şunlardır:

  1. Ben fonksiyonları arasındaki varible dile geçebilir - Aşağıdaki komut ayrıntılı olarak?
  2. Yukarıda elde edildikten sonra, ben şimdi, büyük bir IfElse yapabileceği bazı 30 küsur olabilirlik olacak çünkü gerçekten istemiyorum, sonucu görüntülemek için varibles işlemek gerekir. Gerekli tüm bilgileri bu benim tercih ettiği seçim ama JS, bütün Tarayıcı tarafında, sunucu tarafı sorunu ile bunu nasıl emin değilim olacak bir SQL veritabanında olduğunu. (3 kez tüm ayarlanır) Ben SQL DB ~ verileri kapmak için PHP için (yukarıdaki gibi) varibles geçmesi gerekir, bu nasıl öylesine im değil emin eğer.
  3. Ben PHP kullanırsanız o sayfa yeniden yüklenmek zorunda olacak, bu kullanıcıya seemless almak mümkün, yani tüm seçimleri hala görüntülenir?

    function flag(nation,area)
    {
    this.nation=nation;
    var el=document.getElementById("desc");
    el.innerHTML='The region you have selected is <b>'+area+'</b>';
    document.getElementById("flag").innerHTML='<img src="images/flags/'+nation+'.jpg">';
    }
    function output(service)
    {
    this.service=service;
    var el=document.getElementById("service-desc");
    el.innerHTML='You have selected a <b>'+service+'</b> service.';
    document.getElementById("clock").innerHTML='<img src="images/clock-'+service+'.png">';
    }
    
    
    function result() {
    //get varibles(nation & serive) from functions above ~ not sure how to do this!
    //process varibles
    if (nation == "UK" && service == "Standard next day")
            {
      document.getElementById("result").innerHTML='£9.99';
            }
        else if (nation == "UK" && service == "Before 12pm")
            {
      document.getElementById("result").innerHTML='£14.99';
            }
     // etc,etc,vb...
        else
            {
        document.getElementById("a1").innerHTML = "";
            }
    

    }

Görünümlü ve ben duygusu ve o birilerini yapılan umuyoruz için teşekkürler bana yardımcı olabilir!

B

3 Cevap

Eğer herhangi bir işlevden kullanabileceğiniz bir fonksiyon dışında bir değişkeni bildirirseniz javascript, bu bir global değişkendir. Örneğin

var x, y;
function flag(nation,area)
{
  x = nation;
  y = area;
}
function output(service)
{}    
function result() {
  //In here you can do whatever you want with x and y
}

Sen iyi veritabanından veri alır ve javascript için döndüren bir PHP komut dosyası oluşturmak olacaktır. Bunu yapmanın en iyi yolu, bu seemlessly istediğiniz veritabanından veri almak ve sadece belirli bölümleri güncellemek yerine tüm sayfa için izin verecek bir AJAX çağrısı olurdu.

Ben AJAX yöntemleri kullanmak için bazı çok kolay olduğu gibi jQuery bakmak zorunda öneriyoruz. Bu javascript sarar ve işlevselliğini kullanmak, iyi bir tanıtım vids here kolay çok olan sadece bir kütüphane

İşte tutorial, bir veritabanından veri alan bir PHP komut dosyası çağırmak için jQuery kullanmak nasıl olduğunu.

Üç alternatif temelde vardır:

  • PHP komut dosyası JavaScript diziler sayfadaki tüm verileri koymak ve JavaScript her şeyi idare var. Toplam veri miktarının çok fazla değilse, bu ok bir çözümdür
  • Kullanıcı bir seçim yaptığında tüm sayfayı yeniden yükleyin ve (mevcut seçimleri tutma dahil) PHP her şeyi işlemek - Bu JavaScript olmadan çalışması için tek yoldur, ancak dezavantajları aksi vardır.
  • Kullanıcı bir seçim yaptığında AJAX kullanın, yani JavaScript arka plan ve özel bir PHP komut dosyası sunucu, JavaScript ardından kullandığı (tipik biçimi {[1) (]} kullanarak) sadece ilgili verileri döndürür çağırır sayfasını güncellemek için. Bu genellikle günümüzde böyle yapılır.

İstediğiniz AJAX - sunucu yem konuşur ve buna göre web sayfasını güncelleyen bir PHP sunucu tarafında veri besleme ve JS tarayıcı tarafı mini uygulaması yazmak. Bu Javascript XMLHttpRequest nesnesi kullanılarak elde edilir. Ben çok kullanmayı öğrenmek ve daha sonra sarar JS kütüphanesinden güveniyor ve (jQuery gibi) daha yüksek düzeyde hizmet vermektedir tavsiye