Javascript Sorunları

4 Cevap php

I am using Javascript to store values in a stack, the problem is that the stack value remains active until the page is refreshed.
When the page is refreshed the value in the stack value gets set to 'Undefined'.

Kalıcı yığın değerleri saklamak için bir yer uygulamak için daha iyi mi? Sonra sayfa yenilenir bile eski yığın değeri elde etmek mümkün olmalıdır.

Nasıl bir PHP komut dosyası, aşağıdaki yığın pasajını uygulayabilirsiniz?

   var arr = new Array();
   var pushed=arr.push(id);  // for pushing into stack  
   arr.splice(0,arr.length); // for deleting stack

Nasıl JavaScript PHP saklanan değerlere başvurmak için?

4 Cevap

Bunu çözmek için başka bir yolu sayfayı yenileyin ama ajax kullanarak kendi bedenini ya da bir form veya bir div öğesi yeniden etmektir. jQuery bu especially kolaylaştırır.

$('body').load(url);

Eğer güncellemeleri arasında komut değerleri sebat var Bu şekilde

Sorunuzu doğru yorumlamak ise, javascript nesneler bir sayfa yenileme ötesinde devam edip soruyorsun?

Yeni bir sayfa yüklendiğinde yazık ki, tüm javascript nesneler kayboluyor. Onlar bir sayfa yenileme hayatta yok.

Ben çerezleri kullanarak öneririm. Ben şu anda sizin için kod yazmak için yeterli adanmış, ama genellikle değilim:

Eğer yığından / pop bastığınızda, müşterinin makineye kaydedilmiş olan bir çerez yığını devam etmektedir. Ne zaman ilk kez (ya da örnekte yeniler) için sayfa yüklendiğinde, bu çerez aramak ve javascript nesne kalıcı yığını yazmak.

Javascript kurabiyeye ısrarcı ile yardımcı olmak için bu bağlantılara bir göz atın:

  1. http://codeinthehole.com/archives/6-Active-record-javascript-objects-using-cookies.html
  2. http://www.quirksmode.org/js/cookies.html
  3. http://www.w3schools.com/JS/js_cookies.asp

Sen nesneyi serialize ve URL JavaScript ile bir sonraki sayfaya göndermek ve URL'den sayfasından ayrıştırmak olabilir. Bu muhtemelen bunu yapmak için en iyi yol değildir, ama sen soruyorsun beri, ben kalıcı verileri saklamak için herhangi bir arka uç teknolojiyi kullanmak değil varsayalım.

Assuming that you want certain values javascript variables to persist between page loads, you can either do what Damovisa suggested or simply use a hidden field to store your stack values in some form. Maybe a comma delimited string or something like that.

Avantaj açıktır. Siz program, çerezler etkin istemci tarayıcısına bağlı olmayacaktır değilsin.

Ve mümkünse alternatif olarak, bazı sunucu tarafı değişken içinde yığını koruyabilirsiniz ve sayfa işlenir sonra dinamik javascript bu değeri yerleştirin.

Bize programı hakkında daha fazla ayrıntı verebilir eğer çok yararlı olacaktır.

Edit:

Eğer javascript yansıtmak için PHP değişkenler değerlere istiyorsanız, javascript içinde PHP etiketleri embed.

Örn.

<script>
var str = "<?php echo $my_str; ?>";
//do something with str
</script>

Başka tırnak ("), dize değeri javascript ile bir belirteç olarak kabul edilecek ve bir hata atmak olabilir eklemeyi emin olun.