загрузить параметры через. JQuery - PullRequest
1 голос
/ 06 августа 2009

Я пытаюсь загрузить некоторые данные через. 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": null}

в firebug это дает мне нулевую ошибку в выводе ... я хочу, чтобы он показывал все строки в моей базе данных, теперь это должно показать мне 3 строки ..

но ничего ..: - / почему?

Ответы [ 4 ]

0 голосов
/ 06 августа 2009

У меня были проблемы с json_encode. Я мог получить его только для кодирования классов, поэтому мне пришлось создать экземпляр объекта и json_encode для этого объекта, чтобы вернуть мои данные.

0 голосов
/ 06 августа 2009

Вы, похоже, JSON-кодируете массив, который будет выглядеть как [ ] в JSON-синтаксисе. Однако вы обращаетесь к нему с помощью синтаксиса объекта (data.list_options). Вы могли бы сделать:

$responseobj = new stdClass();
$responseobj->list_options = $output;
echo json_encode($responseobj);
0 голосов
/ 06 августа 2009

$ output равен NULL, когда ваш запрос не возвращает результата, и вы (не очень хорошо!) Не инициализируете $ output в начале, и вы не проверяете, пустой ли $ output или нет в PHP.

0 голосов
/ 06 августа 2009

Вам не нужен 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);

                                        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...