我正在序列化一个包含一个select
输入的表单,其中一个对象作为value
通过Ajax发送到后端:
<select name="language" class="form-control">
<option value="" selected disabled>Choose a Language</option>
<option value="{ locale: 'AF', name: 'Afrikaans' }">Afrikaans</option>
...
</select>
然后使用VueJS:
通过Ajax发送数据$.post("/ajax/admin/languages", $("#addLanguageForm").serialize()).done((data) => {
if (data.success) {
toastr.success("A new language has been added");
} else {
toastr.error("An error occurred");
}
})
然后,触发路由调用的方法,在这里我通过记录来检查数据:
public function store(Request $r)
{
$x = $r->input('language');
Log::info($x);
}
将显示以下内容:
[2018-01-29 05:52:18] local.INFO:{locale:'AF',name:'Afrikaans'}
然后,我尝试访问这些密钥,以便按$x->locale
和$x->name
存储其值,这会导致错误,甚至是对象。
我能错过什么?
答案 0 :(得分:0)
通过一些帮助和想法,我想出了一个解决方案。首先,我将JSON格式修改为@JigarShah建议,然后在Controller中修改以下代码:
public function store(Request $r)
{
$x = $r->input('language');
$d = json_decode($x);
print_r($d->name);
}
一切都好。