将php POST数组分配给Javascript数组

时间:2012-06-11 15:31:18

标签: php javascript json

我知道这可能听起来类似于过去的Q / As,我认为我的情况略有不同。我有一个网页,我想动态加载文本文件信息。我通过iframe上传文本文件,我想将这些信息从php保存到Javascript。每当我尝试将其保存为常规变量时,它都不起作用,所以我试图通过将此信息保存为名为$ _POST ['hidden_​​form']的隐藏表单下的$ _POST数组的一部分来实现此目的。每当我尝试将PHP读入Javascript时,我都会收到错误“Unexpected token ILLEGAL”。我尝试了以下两个代码:

for($i=0;$i< count($_POST['hidden_form']) ;$i++)
{
  echo "saved_form[$i]='" . $_POST['hidden_form'][$i]. "';\n";
}

和     saved_form = <?php echo json_encode($_POST['hidden_form']); ?>;

Assigning a php array into a javascript array

我认为错误与指定数组所需的“'”有关,但不确定。我不知道从哪里去,所以任何帮助都会非常感激。如果有更好的方法,请告诉我。提前谢谢!

2 个答案:

答案 0 :(得分:0)

saved_form = '<?php echo addslashes(json_encode($_POST['hidden_form'])); ?>';

或者

for($i=0;$i< count($_POST['hidden_form']) ;$i++)
{
  echo "saved_form[$i]='" . addslashes($_POST['hidden_form'][$i]) . "';\n";
}

两者都应该有效,可能有引号破坏了什么?

答案 1 :(得分:0)

我使用的最佳方式是,

文本/ JavaScript的

var saved_form = <?php echo json_encode($_POST['hidden_form']) ?>

请注意php周围没有引号所以你的saved_form是一个对象而不是字符串json字符串女巫会要求你使用var form_object = eval(saved_form)

@Lee可能意味着这个?

只是注意,虽然我不会使用Raw $ _POST将它传递给一个可以循环的函数并且在帖子中添加一些东西,如

<?php
function arr_addSlashes($array){
    $ret = array();
    foreach($array as $k => $v){
        $ret[$k] = addSlashes($v);
    }
    return $ret;
}
?>