无法理解语法错误

时间:2014-03-11 09:48:57

标签: php jquery

我有一个脚本,在提交后“记住”输入字段中的值。

var previousData = <? php echo json_encode($_POST, JSON_UNESCAPED_UNICODE); ?> ;
for (item in previousData) {
    if (previousData.hasOwnProperty(item)) {
        // Set the value to the input with same name
        $('input[name=' + item + ']').val(previousData[item]);
        $('select[name=' + item + ']').val(previousData[item]);
    }
}

问题是我收到语法错误:

SyntaxError: syntax error

var previousData = ;

当我删除JSON_UNESCAPED_UNICODE时,它完美无缺。为什么呢?

3 个答案:

答案 0 :(得分:2)

previousData值换成引号' '或双引号" "

var previousData = '<?php echo json_encode($_POST,JSON_UNESCAPED_UNICODE); ?>';

答案 1 :(得分:0)

此处需要引用:

var previousData = '<?php echo json_encode($_POST,JSON_UNESCAPED_UNICODE); ?>';

如果您需要解析您的json,请执行以下操作:

var previousData = JSON.parse('<?php echo json_encode($_POST,JSON_UNESCAPED_UNICODE); ?>');

您应该使用JSON.parse()解析json。

答案 2 :(得分:0)

用引号括起您的代码:

    var previousData = '<?php echo json_encode($_POST,JSON_UNESCAPED_UNICODE); ?>'; //single or double quotes here
    for (item in previousData) {
    if (previousData.hasOwnProperty(item)) {
      // Set the value to the input with same name
      $("input[name='"+item+"']").val(previousData[item]);   //Double quotes here
      $("select[name='"+item+"']").val(previousData[item]);   //Double quotes here