2009-08-06 6 views
1

J'essaie de charger des données via. jquerycharger les options via. 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); 

et mon jquery ressemble à ce

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

        },'json'); 

LA "ERREUR": { "list_options": null}

à Firebug, il me donne une erreur nulle dans la sortie .. Je veux qu'il montre toutes les lignes dans ma base de données, rigtig maintenant il devrait me montrer 3 lignes ..

mais rien ..: -/pourquoi?

Répondre

0

Vous n'avez pas besoin JSON pour ce que vous essayez d'atteindre:

$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

ouais, ça semble fonctionner ...: o Maintenant, je viens de recevoir une erreur charset/bugs ...: -/ son un peu bizarre, parce que je toujours utilisé json_encode mais cette fois-ci did't travail .. effrayant ... – william

0

Vous semblez être JSON codant pour un tableau, qui ressemblerait à [ ] dans la syntaxe JSON. Cependant, vous y accédez avec la syntaxe-objet (data.list_options). Vous pourriez faire:

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

sortie $ est NULL lorsque votre requête renvoie aucun résultat, et vous (pas bien!) Initialisez pas sortie $ au beggining et vous ne cochez pas, si la sortie de $ est vide ou non en PHP .

0

J'ai eu des problèmes avec json_encode. Je ne pouvais l'obtenir que pour encoder des classes, donc j'ai dû instancier un objet et json_encode cet objet pour retourner mes données.

Questions connexes