Php UrlDecode veya html_entity_decode () bir javascript eşdeğeri var mı?

2 Cevap php

Ben daha sonra javascript değerlerini almak böylece gizli bir form içine girdi sopa istiyorum php bir ilişkisel dizi var. Çünkü sorunları alıntı, ben json UrlEncode, veya htmlentity gerekir. Javascript nesne var, olsa da, arka düz ol 'json onu almak için en kolay yolu nedir?

OR Bu meseleye yaklaşmak daha iyi bir yolu var mı? AJAX overkill burada gibi görünüyor - Ben daha ziyade çoklu istekleri kurma yerine, sayfadaki verileri önceden doldurmak istiyorum. Ben bir php oluşturulan komut dosyası etiketi içine sayfasına php nesne yazabilirim, ama bu biraz dağınık görünüyor, ve ben [komut] Bu kullanılmış olabilir mümkün olan her durumda işlenecek emin değilim.

2 Cevap

Eğer bir alan içindeki verileri sopa eğer decodeURIComponent değerini çözmek için kullanabilirsiniz. Örnek:

decodeURIComponent("%5b'hello'%2c%20'world'%5d"); // ['hello', 'world']

Diğer bir yaklaşım, PHP çıktı a <script> elemanında JSON nesnesi katıştırmak için olabilir. Hatta kadarıyla JSON yere uzakta saklayan bir işleve bir argüman nesne yapmak için gidebiliriz.

<script>setupData(<?= toJSON(['hello', 'world']) ?>)</script>

Sayfa yüklediğinde setupData sayıl ['hello', 'world'] ile olacağını söyledi.

Oh. Ben ilk test sanırım. Ben dojosunu kullanarak, ve bu sadece İşleri ediyorum:

PHP:

$arr = array('nyc'=>'big apple', 'boss'=>'big banana', 'lion'=>'big cat');
$json = htmlentities(json_encode($arr));
echo '<input type="hidden" id="myHidden" value="' . $json . '" />';

Javascript:

var raw = dojo.byId('myHidden').value;
var arr = dojo.fromJson(raw);
for (var i in arr) {
    console.log(i + " => " + arr[i]);
}

[Süklüm püklüm sırıtma]