我們的迅睿cms使用的是php語法,可以通過預(yù)設(shè)函數(shù)直接獲取后臺中的數(shù)據(jù)。通常我們是在html中直接循環(huán)使用,但是有時候js中也需要用到這些數(shù)據(jù),但是在js中不能直接使用html中的賦值方法,之前有很多次用其他方法解決了,這次有時間,所以記錄下這次在js中使用php數(shù)組的過程。
在html中,我直接使用 {php $field = dr_field_options(256);}給$field賦值,并通過loop循環(huán)這個field數(shù)組,把該數(shù)組的內(nèi)容循環(huán)出來。
得到了如下內(nèi)容。
但是,我如果在js中也使用這個數(shù)組,直接var xxx = $field卻是不可以的,報錯沒有$field,因為js把這個field認(rèn)為了是另一個值,但是之前卻沒有聲明。
正確的使用方法如上,應(yīng)該先在js外,聲明這個變量,然后在js內(nèi),把整個php全部賦值,因為在php中數(shù)據(jù)格式和js中有些許差別,所以這里我們使用json_encode轉(zhuǎn)為js能使用的格式,這里轉(zhuǎn)義出來是一個對象。然后我們就能正常使用php中的數(shù)據(jù)了。
---------
后補
我發(fā)現(xiàn)上文在使用的時候也不是很嚴(yán)謹(jǐn),也會出現(xiàn)報錯的情況,報錯:在這個模板系統(tǒng)中,您不能在同一個作用域內(nèi)混合使用PHP標(biāo)簽(<?php ?>)和模板語法({$variable})。所以以下為更嚴(yán)謹(jǐn)?shù)膶懛?,直接在php賦值的時候使用json_encode,然后在js把JSON字符串轉(zhuǎn)為對象。