我有一个PHP函数,它返回数据库值以填充选择表单字段。我试图用数据库中的查询(id,name,min,max)中的所有相关数据填充选项元素的值,这样我就不必发送AJAX请求来获取其余的,所以我决定在填充选择字段之前,对php数组进行json_encode。
相关PHP:
$items[] = array( "text" => $injury['name'], "value" => json_encode($injury) );
PHP的HTML输出:
<select name="input_2" id="input_2_2" class="medium gfield_select" tabindex="4"><option value=" ">Select an Injury</option><option value="{"id":"1","name":"Arm","min":"15000","max":"25000"}">Arm</option><option value="{"id":"3","name":"Head","min":"100000","max":"150000"}">Head</option><option value="{"id":"2","name":"Leg","min":"30000","max":"45000"}">Leg</option></select>
在javascript方面,我使用jQuery来获取选项的值,如下所示:
`jQuery(injuryClass).on("change", function () {
var injurySelect = jQuery(this);
injury = injurySelect.val();
var results = jQuery.parseJSON(jQuery(injury));
console.log(results)
我收到控制台错误:
uncaught error: syntax error, unrecognized expression: {"id":"1","name":"Arm","min":"15000","max":"25000"}
答案 0 :(得分:1)
错误发生在jQuery.parseJSON(jQuery(injury));
。您使用未解析的JSON调用jQuery()
。但jQuery期望选择器和JSON不是有效的。
尝试:jQuery.parseJSON(injury);