我有一个代码将javascript对象编码成这样的东西:
<script>
var php_string='array("one"=>"value_one","two"=>"value_two")';
</script>
现在我想知道如何将其转换为:
{
"one":"value_one",
"two":"value_two"
}
php_string
的内容在$_POST
变量上发送给PHP。无论如何要做到这一点,还是应该使用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
)的完整原因
我试图解决这个问题,但现在我发现我不应该这样做。
我有一个页面表单,其中包含一些输入和多个名为“options”的按钮
当我点击这些按钮中的任何一个时,弹出窗口显示动态字段(从选择字段上选择的选项派生),当我填写所有输入时,我创建php_string
并保存它在一个隐蔽的领域。
现在我希望当我再次单击其中一个“选项”按钮时,我可以读取我在隐藏字段上保存的内容,以便设置弹出输入应该显示的默认值,如果所选的选项选择字段不会改变。
然后在PHP上解析隐藏字段。
答案 0 :(得分: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。