2012-08-02 141 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