2012-08-02 137 views
-1

我想編碼一些用戶輸入,我從數據庫中提取,然後在點擊時將它插入到textarea。這裏是我編碼數據的代碼,將用戶發送到textarea錨點,然後觸發我的函數。爲什麼json_encode不工作?

這裏的引號()函數:

function quote(originalpost){ 
oFormObject = document.forms['id1']; 
oFormObject.elements['post'].value = originalpost; 
}; 

我得到的螢火這個錯誤,當我點擊它:語法錯誤:語法錯誤 線1

我是一個完整的當涉及到JavaScript的新手,所以我可能會錯過一些非常明顯的東西。 我已經看過,並嘗試了很多不同的編碼選項和事情,但我沒有得到任何地方。

回答

2

由於JSON是原生的Javascript,你不應該在JS代碼中聲明它或引用它時引用它。

嘗試:

echo " 
<a href='#quickpost' value='quote' 
onClick='quote($quote)' name='quote'>Quote</a>"; 

然後你的函數裏面,你可能需要字符串化的JSON:

oFormObject.elements['post'].value = JSON.stringify(originalpost); 

對於理智的緣故,通過json_encode得到產生的JSON的副本,並運行它通過JSON lint utility以確保它是有效的。

看看是否有效。對於沒有原生字符串支持的瀏覽器,您可以獲取函數here的代碼。

0

也許你需要確保你發送一個字符串到報價函數。對於我所看到的你可能會發送quote([url]...,而你應該發送quote("[url]..."(注意引號字符)

0

由於數據來自數據庫,只需在json對其進行編碼之前將其輸出爲數組。

//array from database 
$array = array(); 
//set the header 
header("content-type:json/application"); 
return json_encode($array); 

然後檢索編碼的json作爲responseText。

var data = $.ajax({ 
    url:"", 
    type:"json", 
    cache:false, 
    async:false 
}).responseText; 

var encodedData = JSON.parse(data); 

現在你有一個有效的JSON對象,它是encodedData