use*_*404 0 javascript php json
我在js中解析json编码对象时遇到了问题.
JSON.parse(word_array);有错误Uncaught SyntaxError: Unexpected identifier
我的调查表明,对象word_array不会因为在PHP错误的形成存在:它有一个转义单引号'内,从而使JS把它作为字符串的结尾.
我下一步编码:
echo "<script>var word_array = '";
echo json_encode($word_set);
echo "';\n";
Run Code Online (Sandbox Code Playgroud)
据我所知,json_encode应该逃避所有不受欢迎的特征,'但事实并非如此.可能是什么问题?
我的php版本:Version PHP: 5.3.13
并且$word_set是一组assoc.数组:
$word_set = array();
while($stmt->fetch())
{
$word_set_tmp[] = array(
'word' => $word,
'definition' => $def
);
array_push ($word_set,$word_set_tmp);
}
Run Code Online (Sandbox Code Playgroud)
问题是你用单引号括起一个数组声明,删除它们并且一切都很好:
echo "<script>var word_array = " . json_encode($word_set) . ";";
Run Code Online (Sandbox Code Playgroud)
作为旁注,我发现当我必须将PHP与其他任何东西混合(html,js)然后最好退出php模式并编写html/js,回应所需的php变量,而不是回显出html/js:
<?php
$word_set = $db->somfunc();
?>
<script>
var word_array="<?php echo json_encode($word_set);?>";
alert(word_array[1].definition);
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |