2009-08-06 79 views
1

我想通過加載一些數據。 jQuery的通過加載選項。 jquery

$get_desc = "SELECT tekst_id,overskrift FROM rr_tekster WHERE beskrivelse_id = '". $_POST['beskrivelse_id'] ."' AND status = 1"; 
    $select = mysql_query($get_desc)or die(mysql_error()); 
    while($row_option = mysql_fetch_array($select)){ 
     $output .= '<option value="'.$row_option['tekst_id'].'">'.$row_option['overskrift'].'</option>'; 
    } 


$arr = array (
     'list_options' => $output 
); 
echo json_encode($arr); 

和我的jQuery看起來像這樣

$.post(action, { beskrivelse_id:des_id }, function(data){         
          $(load_div).fadeOut(); 
          $(result).html('<select name="tekster">'+data.list_options+'</select>').fadeIn(500); 

        },'json'); 

「錯誤」:{ 「list_options」:空}

的螢火它給了我在輸出的零錯誤.. 。我希望它顯示我的數據庫中的所有行,現在應該顯示3行。

但沒有..: - /爲什麼?

回答

0

你不需要的JSON你想達到什麼目的:

$get_desc = "SELECT tekst_id,overskrift FROM rr_tekster WHERE beskrivelse_id = '". $_POST['beskrivelse_id'] ."' AND status = 1"; 
     $select = mysql_query($get_desc)or die(mysql_error()); 
     while($row_option = mysql_fetch_array($select)){ 
       $output .= '<option value="'.$row_option['tekst_id'].'">'.$row_option['overskrift'].'</option>'; 
     }  

echo $output; 


$.post(action, { beskrivelse_id:des_id }, function(data){                
                 $(load_div).fadeOut(); 
                 $(result).html('<select name="tekster">'+data+'</select>').fadeIn(500); 

             }); 
+0

是啊,這似乎工作...:○ 現在我只是得到了一些字符集的錯誤/缺陷...: -/ 它有點怪異,因爲我總是用json_encode但這次我以前不工作.. 幽靈般的 ... – william 2009-08-06 14:45:37

0

你似乎是JSON編碼陣列,這看起來就像在JSON語法[ ]。但是,您正在使用對象語法訪問它(data.list_options)。你可以這樣做:

$responseobj = new stdClass(); 
$responseobj->list_options = $output; 
echo json_encode($responseobj); 
0

$輸出爲NULL,當你查詢不返回任何結果,並且您(不好啊!)在beggining未初始化$輸出你不檢查,如果$輸出爲空或不在PHP 。

0

我有問題與json_encode。我只能得到它來編碼類,所以我不得不實例化一個對象和json_encode該對象來返回我的數據。