php için javascript dizi

3 Cevap php

i jquery ajax kullanarak php için bir javascript dizisi göndermek istiyorum.

$.post("controllers/ajaxcalls/users.php",
{
    links: links
});

İkinci bağlantıları 'bir javascript dizisi nerede.

Ben bu dizi var zaman:

'1' ...
    '1' => "comment1"
    '2' => "link1"
    '3' => "link2"
    '4' => "link3"
'2' ...
    '1' => "comment2"
    '2' => "link4"

sonra kullanarak:

var jsonLinks = JSON.stringify(links);
alert(jsonLinks);

Bana verecek:

[null,[null,"comment1","link1","link2","link3"],[null,"comment2","link4"]]

yanlış bir şey gibi geliyor bana. ne null: s ve i elemanları almak için php tarafında json_decode cant kullanmak.

hangi işlevi i json dönüştürmek için kullanması gereken ve php tarafında nasıl i erişebilirim?

Bu http://code.google.com/p/jquery-json/ denedim ama tam JSON.stringify olarak aynı çıktı () (onlar da bu belgelerde demek) verecektir.

şimdi birkaç saat içinde bu mücadele var ... bazı özel yardım seviniriz.

ben sadece php javascript bir dizi göndermek istiyorum ... neden o kadar lanet zor :/

3 Cevap

null kısmını yanıtlayan, JavaScript diziler sayısal ve sıfır tabanlı:

>>> var foo = [];
>>> foo[5] = 'Five';
"Five"
>>> foo
[undefined, undefined, undefined, undefined, undefined, "Five"]

Aksine, PHP eksik sağlar (ve karışık) tuşları:

<?php

$foo = array();
$foo[5] = 'Five';
print_r($foo);

?>

Array
(
    [5] => Five
)

Eğer diziler kullanmak istiyorsanız, ben bunları sıfır tabanlı yapmak ve eksik değerleri önlemek öneririz. Aksi takdirde, muhtemelen yerine nesneleri kullanabilirsiniz.

JSON kodlamak bazı jQuery eklentisi vardır (and decode from JSON).


For instance, you can take a look at jquery-json (quoting) :

This plugin exposes four new functions onto the $, or jQuery object:

  • toJSON: Serializes a javascript object, number, string, or arry into JSON.
  • evalJSON: hızlı, JSON JavaScript dönüştürür, ve saçmadır.
  • secureEvalJSON: Converts from JSON to Javascript, but does so while checking to see if the source is actually JSON, and not with other Javascript statements thrown in.
  • quoteString: Places quotes around a string, and inteligently escapes any quote, backslash, or control characters.

Ben size PHP komut dosyası bu okumaya çalışıyoruz nasıl emin değilim, ama sen 1-tabanlı diziler yerine 0-tabanlı diziler sahip ilişkili olup olmadığını, daha sonra javascript, sen ile boşlara (sıfırıncı eleman) kaldırabilirsiniz :

var jsonLinks = JSON.stringify(links.slice(1));