各位大大好:
想請問
try {
$conn= new PDO("mysql:host=$hostdb;dbname=$namedb",$userdb,$passdb);
//echo'資料庫伺服器連線及資料庫開啟成功'.'<br>';
$conn->exec("SET CHARACTER SET utf8");
$Bdate=$_POST['Bdate'];
$mdata=$_POST['mdata'];
$sql5="select * from ".$mdata." where bdate= :Bdate";
$sql6 =$conn->prepare($sql5);
$ar_val=array('Bdate'=>$Bdate);
if($sql6->execute($ar_val)){
while($row=$sql6->fetch())
{
$show = array('timest'=>$row['timest'],'clr'=>$row['clr']);
//echo $row['timest'].'-'.$row['clr'];
echo json_encode($show,JSON_UNESCAPED_UNICODE);
}}
$conn=null;
}
用console.log跑出來的程式結果,但使用JSON.parse(data)轉換成物件會出錯..一次一筆資料可以,但一次多筆資料就不行
但我需要的格式是
{ "timest": "08:00", "clr": "EC4561" }, { "timest": "08:00", "clr": "EC5566" }, { "timest": "08:00", "clr": "EC1234" }]
想請問這有甚麼參數或方法嗎?
謝謝!
因為你搞錯json的相對應格式了。
一次轉換成物件只能一組。
但你輸出了多個json格式。當然轉換不了。
正確的做法是
$show=array();
while($row=$sql6->fetch())
{
$show[] = array('timest'=>$row['timest'],'clr'=>$row['clr']);
}
echo json_encode($show,JSON_UNESCAPED_UNICODE);
也就是將你的資料化成一個多維陣列後,再轉json出去給js處理就好了。
不要以為JSON.parse可以幫你將多個json組合成一個。