我写了这样的东西,
`$ sql =“SELECT * FROM dbase”;
$strOptions = "";
if (!$q=mysql_query($sql)) {
$strOptions = "<option>There was an error connecting to database</option>";
}
if (mysql_num_rows($q)==0) {
$strOptions = "<option>There are no news in database</option>";
}else {
$a=0;
while ($redak=mysql_fetch_assoc($q)) {
$a=$a+1;
$vvvv[$a]["id"]=$redak["id"];
$vvvv[$a]["ssss"]=$redak["ssss"];
}
}
for ($i=1; $i<=$a; $i++) {
$strOptions = $strOptions. '<option value="'. $vvvv[$i]["id"] .'">'.$i.'.) - '.strip_tags($vvvv[$i]["ssss"]).'</option>';
}
echo '[{ "message": "3" },{ "message": "' . count($wpdb->get_results("SELECT * FROM dbase")) . '" },{ "message": "'.$strOptions .'"}]';`
我以后不能解析json文件,后来我用这种方式解析它来填充select-option
$jq("#select-my").children().remove();
$jq("#select-my").append(data[2].message);
我使用jquery表单,一切正常,除此之外,我无法解析select-option元素的数据。我试着用php中的json_encode。有人帮忙吗?
答案 0 :(得分:0)
如果我正在阅读你的PHP,你的JSON最终看起来像这样:
[{ "message": "3" },{ "message": "(count_goes_here)" },{ "message": "(options_go_here)"}]
JSON字符串的顶级必须是匿名对象,而不是数组(details)。所以这是有效的:
{"test": ["one", "two", "three"]}
但阵列本身不是:
["one", "two", "three"]
要修复它,只需将数组包装在一个对象中:
{"values": [{ "message": "3" },{ "message": "(count_goes_here)" },{ "message": "(options_go_here)"}]}
...然后当您对JSON字符串进行反序列化时,使用生成的对象的values
属性来访问该数组。