Показать сообщение отдельно
  #1 (permalink)  
Старый 18.12.2012, 08:53
Интересующийся
Отправить личное сообщение для vladimirlip Посмотреть профиль Найти все сообщения от vladimirlip
 
Регистрация: 18.12.2012
Сообщений: 15

Перебор двухмерного массива
Здравствуйте!
Есть задача: при помощи ajax получать записи из бд Mysql. Сайт работает на codeigniter.
$('#TestPrivet1').click(function(){
        var param = $('#pole1').val();
         $.ajax({
 		type: 'POST',
 		url: 'http://masterstvo-zhizni.loc/index.php/seminars/showAjax',
        data: {'param':param},
        cache: false,
 		dataType: 'json',
 		success: function(data) {
            $('#result1').html('<table class="raspisanie_sem"><tr class="one"><td>Дата проведения</td><td>Город</td><td>Организатор</td><td>Тема</td></table>');
           	for ( var key1 in data['dataAjax'] ) {   
           	                                        
           	    for ( var key2 in data['dataAjax'][key1] ) {  
           	                                                        
           	        $('#result1').append('<tr class="tbody"><td>' + data['dataAjax'][key1]['date']+ '</td><td>'+ data['dataAjax'][key1]['gorod']+'</td><td class="cursiv">'+ data['dataAjax'][key1]['fio']+ data['dataAjax'][key1]['telefon']+data['dataAjax'][key1]['email']+'</td><td class="bold_td">'+data['dataAjax'][key1]['zagolovok']+'</td></tr>');
           	       }
           	    }
 		}
 	});//конец ajax
  });//конец клик
});//конец ready

Контроллер:
public function showAjax(){
            $param = $this->input->post('param');
            $data = array();
            $data['dataAjax'] = $this->raspisanie_model->get_one($param);
             // Возвращаем ответ
            echo json_encode($data);
 
    }


Запрос к базе:
public function get_one($seminar_id) {
            $this->db->select(' raspisanie.date
                                 , organizator.gorod
                                 , organizator.fio
                                 , organizator.email
                                 , organizator.telefon
                                 , seminars.zagolovok');
            $this->db->from('raspisanie');
            $this->db->join('seminars', 'raspisanie.seminar_id = seminars.seminar_id'); 
            $this->db->join('organizator', 'raspisanie.organizator_id = organizator.organizator_id');
            $this->db->where('raspisanie.seminar_id',$seminar_id);
            $query = $this->db->get();
            return $query->result_array();
                }

Проблема в следующем:
данные вставляются, но почему то приходит три строки. А при переборе массива каждая строка выводится на сайте по 6 раз.т.е. вместо 3-х нужных, получаю 18 строк в таблице на сайте.

firebug:
dataAjax


[Object { date="7-8-9 декабря 2012г.", gorod="Рязань", fio="Елена ", ещё...},
Object { date="14-15-16 декабря", gorod="Воронеж", fio="Фарида и Александр"
, ещё...},
Object { date="2-3 февраля", gorod="Одесса", fio="Татьяна "
, ещё...}]


0 Object { date="7-8-9 декабря 2012г.", gorod="Рязань", fio="Елена "
, ещё...}

1 Object { date="14-15-16 декабря", gorod="Воронеж", fio="Фарида и Александр", ещё...}

2 Object { date="2-3 февраля", gorod="Одесса", fio="Татьяна "
, ещё...}

Последний раз редактировалось vladimirlip, 18.12.2012 в 09:05.
Ответить с цитированием