json dan url php dizi

5 Cevap php

İşte yapmak istediğim şey:

Ben bu gibi bazı json var

  var foo = {
   format:"json",
   type:"test",
   id:"26443"
  };

ve ben böyle bir url koymak için awant

 'http://example.com/a:3:{s:6:"format";s:4:"json";s:4:"type";s:4:"test";s:2:"id";s:5:"26443";}'

Sonra ajax çağrısı içine koyacağız ama hata sonuçları denedim her şey 501 BAD URI Birisi nasıl bunu bana söyleyebilirdi ki

I've tried this EDIT:

tekrar aradılar ve bu fonksiyonun sonuçlarını uyaran sonra onlar sadece ajax veya tarayıcı ya propler kullanılan arrn't sonuçları correcty inşa IS

 function js_array_to_php_array(a) {
  var a_php = "";
  var total = 3;

  for (var key in a){
   total;
   a_php = a_php + "s:" + String(key).length  + ":\""  + String(key) + "\";s:" + String(a[key]).length  +  ":\"" + String(a[key])  + "\";";
  }
  a_php = "a:" + total +":{" + a_php + "}";
  return a_php;
 }

Ben http fox kullandığınızda bu geri almak

 http://example.com/a:3:%7Bs:6:%22format%22;s:4:%22json%22;s:4:%22type%22;s:4:%test%22;s:2:%22id%22;s:5:%2226443%22;}

Bu son kıvırcık braket ama her şeyi ecodes çünkü ben garip bulmak

5 Cevap

ben ben de, neden kodunu açıklıyor çapraz etki alanı gidiyordu benim ajax arama çalıştırırken yerine JSON JSONP kullanmak için gerekli olan soruna onu gerektiği gibi tam yaptım js_array_to_php_array fonksiyonu ile yanlış bir şey çıkıyor böylece url çalıştı ama ne zaman ben ajax koştu

Yardımlarınız için teşekkür ederim

Zaten bunun için bir jQuery işlevi var! Kullanın ve onu seviyorum.

http://api.jquery.com/jQuery.param/

Neden sadece "normal" bir sorgu dizesi kullanmak değil mi?

http://example.com/?type=test&id=26443

$type = $_GET['type'];
$id   = $_GET['id'];

Ben bir şey eksik sürece?

http://example.com/a:3:{s:6:"format";s:4:"json";s:4:"type";s:5:"test";s:2:"id";s:5:"26443";}

501 doğru - bu geçerli bir URL değil. URL'ler kesinlikle onları tırnak var, ya da (çoğunlukla) kıvırcık parantez olamaz.

Eğer gerçekten sorgu parametreleri normal bir dizi olarak yapmadan bir URL bir PHP edebi yapıya göndermek varsa, sizin gibi yapabilirsiniz geçersiz karakterler,-kodlamak url olurdu:

url= 'http://example.com/'+encodeURI(js_array_to_php_array(foo));

: sonuçlanan

http://example.com/a:3:%7Bs:6:%22format%22;s:4:%22json%22;s:4:%22type%22;s:5:%22test%22;s:2:%22id%22;s:5:%2226443%22;%7D

tesadüfen bu:

String(key)

olduğunu gereksiz: nesne tuşları numaraları olarak koymak bile, JS her zaman dizeleri vardır;

"\""  + String(a[key]) + "\""

değer bir teklif ya da ters bölü eğer yanlış, ve gidiyor

total;

Mutlaka buraya bir artış olmalıdır?

PHP ucunda, urlencode(json_encode($obj)) bir URL kullanılabilecek bir dize, bir nesneyi dönüştürmek için kullanabilirsiniz.

Ben bu yayınlanmıştır sonra, ben sana var foo = { gördükten sonra bir URL dizesine bir JavaScript değişkeni dönüştürmek için çalışıyoruz gerçekleşmiştir. Yaa.