2013-06-20 46 views
0

我在模型中使用API​​數據,然後傳遞給控制器​​,然後查看。在一個特定的實例中,我需要做一個foreach()循環,但是在javascript中獲取我需要的數據,請參閱下面的內容。javascript數組中使用的PHP數組數據 - codeigniter

我知道這是不好的做法,但想知道最佳做法是什麼實現這一點,所以我知道前進。

categories: [<?php foreach($champ_name as $champ_id => $stat_value) { 
       foreach ($stat_value as $cn => $cs) { 
        if($champ_id != 0) { 
         echo '"'.$cn.'",'; 
        } 
       } 
      } ?>] 

感謝您的期待/幫助。

(PS。上面的工作,但我知道是不正確的做法)

+0

使用json_encode()來代替手工打造脆弱的琴絃...... – dandavis

回答

2

您可以使用json_encode()把它轉換成一個對象或數組的JavaScript可以使用。

categories: <?php echo json_encode($myThing); ?> 

對於你的使用,你仍然需要你的foreach邏輯來構建一個數組來被json編碼。

如果您像在問題中一樣手動構建數組,則需要注意特殊字符,以免破壞數組並導致語法錯誤。例如,如果您的任何$cn包含雙引號,則會產生語法錯誤。 json編碼它的好處是任何特殊字符都將被照顧而不必處理它們。

例子:

$arr = array('abc', 3, 'te"xt', 6); 
echo json_encode($arr); 

輸出

["abc",3,"te\"xt",6] 
      ^qoute has been automatically escaped 
+0

酷,這是非常有幫助的 - 我會做到這一點,當我回家。所以編碼成json之後,我會像上面做的那樣做一個JavaScript foreach嗎? – CarlTaylor1989

+0

是的,JSON是有效的JavaScript語法,因此您可以直接將它回顯到Javascript代碼中,並像平常一樣使用它(請務必將其分配給變量)。 – MrCode