2010-11-19 26 views
0

ben üretim sunucusuna taşındı ve ben gerçekten basit bir model geliştirdik çalışmaz ve boş çok üreten Json mootools ve kullanan localhost bir sistem üzerinde geliştirilen JSON Mootools Dizisi sorun

<script type="text/javascript" src="bookingSystem/mootools/mootoolsCore.js"> 
    </script> 
    <script type="text/javascript" src="bookingSystem/mootools/mootoolsMore.js"> 
    </script> 
    <script> 
      function json(){ 
       var weekDays = JSON.encode({ 
        apple: 'red', 
        lemon: 'yellow' 
       }); 
       ; 
       alert(weekDays); 
       var request = new Request.JSON({ 
        method: 'post', 
        url: 'jsonTest.php', 
        data: { 
        weeks: weekDays 
        }, 
        onComplete: function(jsonObj){ 
         alert("back"); 
        } 
       }).send(); 
      } 

</script> 


</head> 
<body> 
    <span onmousedown="json()">JSONTEST</span> 
</body> 
</html> 

ve php

Bu NULL olarak deşifre

<?php 
    var_dump(json_decode($_POST['weeks'])); 
?> 

olduğunu.

Yerel sunucudaki dizilerle mükemmel bir şekilde çalıştı, ancak diziyi canlı sunucum üzerinde çalışamıyorum. Bir dizi kullanmazsam iyi çalışır. Bakmaya başlayabileceğim herhangi bir fikir.

sayesinde

cevap

1

Benim tahminim bu sunucu üzerinde sihirli tırnak geliştirme makinenizde aktif süre değildir ederim. Kullandığınız POST değişkeni json_decode sessizce başarısız olursa ve NULL döndürür.

Sihirli tırnak işaretleri, tüm POST, GET ve COOKIE değişkenlerinde otomatik olarak ters eğik çizgi ile bazı karakterlerden (', " ve ikili sıfır) kaçar. JSON'da kodlanmış basit bir değişken bu karakterlerden birini içermeyebilir, bu nedenle sunucuda da çalışır, ancak bir diziyi kodlarsanız bu durum söz konusu olmayabilir. PHP yapılandırma dosyasına erişiminiz olmasa bile, sihirli tırnakların nasıl devre dışı bırakılacağını

.

+0

Problemin herhangi bir yolu var mı? – AAA

+0

Teşekkürler Bu çok yardımcı oldu. Kapatıldığını düşündüm. Bunu yaptım: – AAA

+0

if (is_array ($ _ POST ['haftalar'])) { \t $ mike = stripslashes ($ _ POST ['haftalar']); } else { \t $ mike = ($ _POST ['hafta']); } – AAA