0

我有一个将javascript对象编码成这样的代码:

<script>
    var php_string='array("one"=>"value_one","two"=>"value_two")';
</script>

现在我想知道如何将其转换为:

{
    "one":"value_one",
    "two":"value_two"
}

的内容通过变量php_string发送到 PHP 。$_POST有没有办法做到这一点,或者我应该使用 JSON 来代替?

编辑

如所问,这是使我的代码php_string

function encodeFormOptions(inputsWrapper){
    var the_serialize=$(inputsWrapper).find(":input").serializeArray();
    var text="array(";
    $.each( the_serialize, function( key, value ) {
        text+='"'+value["name"]+'"=>'+'"'+value["value"]+'",';
    });
    if (text.charAt(text.length-1)==",")
        text=text.substring(0,text.length-1);
    text+=");";
    return text;
}

编辑 2

我忘了说我需要在纯 Javascript 中进行这种转换。换句话说,我需要将数组字符串解析为 javascript 对象,因为当点击我页面上的某个按钮时,我需要读取当前内部的值php_string

编辑3(的全部原因php_string

我试图抽象出这个问题,但现在我发现我不应该这样做。

我有一个页面表单,其中包含一些输入和多个名为“选项”的按钮

当我单击这些按钮中的任何一个时,会出现一个弹出窗口,其中包含动态字段(源自在选择字段上选择的选项),当我填写所有输入时,我会创建php_string并将其保存在隐藏字段中。

现在我希望当我再次单击“选项”按钮之一时,我可以读取我保存在隐藏字段中的内容,以便放置弹出输入应该显示的默认值,如果选择字段的选定选项没有不改变。

然后在 PHP 上解析隐藏字段。

4

1 回答 1

1

编辑:

看起来这可能更接近您正在寻找的内容:

<script>
    var php_string = 'array("one"=>"value_one","two"=>"value_two")';
    var php_string = JSON.parse(php_string.replace(/array\(/g, '{').replace(/\)/g, '}').replace(/=>/g, ':'));
</script>

不过,这当然不是最优雅的处理方式,因此请考虑重构产生该输出的内容。例如,您可以从客户端发送 json 并在服务器端使用json_decode

于 2013-02-12T16:12:17.150 回答