2010-04-03 6 views
0

나는 이렇게 썼다.JSON 옵션 질문을 선택 하시겠습니까?

`$ 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 파일을 구문 분석 할 수 없습니다

가, 나중에 내가 선택-옵션을 채우기 위해이 길을 구문 분석

$jq("#select-my").children().remove(); 
     $jq("#select-my").append(data[2].message); 

나는 모든이를 제외하고 잘 작동 JQuery와 양식 pluing을 사용, 내가 분석 캔트 선택 옵션 요소에 대한 데이터입니다. 나는 json_encode를 PHP로 시도하고 누군가가 도와 주실 수 있습니까?

답변

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 속성을 사용하여 배열에 액세스합니다.

+0

시도해 볼 때 잠깐만 기다려주세요. jquery와 json, tnx의 답변이 새로 생겨서 죄송합니다. – user147