2009-08-06 14 views
1

Ich versuche, einige Daten über zu laden. jqueryladen Optionen über. 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); 

und meine Jquery sehen aus wie diese

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

        },'json'); 

den "Fehler": { "list_options": null}

in Firebug es gibt mir ein Null-Fehler in der Ausgabe .. Ich möchte es alle Zeilen in meiner Datenbank anzeigen, jetzt sollte es mir 3 Zeilen zeigen ..

aber nichts ..: -/warum?

Antwort

0

Sie brauchen nicht json für das, was Sie zu erreichen versuchen:

$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

, das scheint zu funktionieren ...: o ich jetzt nur ein paar charset Fehler/Bugs bekam ...: -/ seine irgendwie komisch, weil ich json_encode immer verwendet, aber dieses Mal ist es did't Arbeit .. gespenstisch ... – william

0

Sie scheinen JSON-kodiert ein Array zu sein, die wie [ ] in der JSON-Syntax aussehen würde. Sie greifen jedoch mit der Objektsyntax darauf zu (data.list_options). Sie tun können:

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

$ output NULL ist, wenn Ihre Abfrage kein Ergebnis, und Sie (nicht gut!) Nicht mehr als $ Ausgabe am beggining initialisieren und Sie nicht überprüfen, wenn $ Ausgabe leer ist oder nicht in PHP .

0

Ich hatte Probleme mit json_encode. Ich konnte es nur bekommen, um Klassen zu kodieren, also musste ich ein Objekt und json_encode instanziieren, um meine Daten zurückzugeben. ja