Конвертируйте данные в Json в CodeIgniter с помощью AJAX

Я пытаюсь конвертировать JSON-код в CodeIgniter, я хочу сделать нумерацию страниц.

Я использую AJAX и хочу контролировать преобразование данных в JSON и отправить его для просмотра. Я могу кто-нибудь объяснить мне, как это сделать.

Код в контроллере, вместо каждой части я пытаюсь сделать Json, и отправить его для просмотра

function ajax(){

$rpp= $_POST['rpp'];
$last = $_POST['last'];
$pn =  $_POST['pn'];

if($pn<1){
$pn=1;
}
elseif($pn>$last){
$pn =$last;
}

$l = ($pn - 1) * $rpp;
$this->db->limit($l, $rpp);
$row = $this->db->get('pages');

$dataString='';
foreach($row->result() as $r){
$id = $r->id;
$info = $r->info;
$dataString .= $id.'|'.$info.'||';

}

echo json_encode($dataString);
}
}

просмотреть часть

function request_page(pn)
{
var rpp = <?php echo $rpp; ?>; // results per page
var last = <?php echo $last; ?>; // last page number

var results_box = document.getElementById("results_box");
var pagination_controls = document.getElementById("pagination_controls");
results_box.innerHTML = "loading results ...";
$.ajax({
type: "POST",
url: "<?php echo site_url('search/ajax')?>",
data: { 'rpp' : rpp , 'last' : last, 'pn' : pn},
dataType: "text",
success: function(msg){
// alert(msg)
;
var dataArray = msg.split("||");
var html_output = "";
for(i = 0; i < dataArray.length - 1; i++){
var itemArray = dataArray[i].split("|");
html_output += "ID: "+itemArray[0]+" - Testimonial from <b>"+itemArray[1]+"</b><hr>";
}
results_box.innerHTML = html_output;
}});

var paginationCtrls = "";

if(last != 1){
if (pn > 1) {
paginationCtrls += '<button onclick="request_page('+(pn-1)+')">&lt;</button>';
}
paginationCtrls += ' &nbsp; &nbsp; <b>Page '+pn+' of '+last+'</b> &nbsp; &nbsp; ';
if (pn != last) {
paginationCtrls += '<button onclick="request_page('+(pn+1)+')">&gt;</button>';
}
}
pagination_controls.innerHTML = paginationCtrls;
}

-1

Решение

это просто

Вы должны иметь представление для кодирования данных в JSON. Это просто так:

<?php
$this->output->set_header('Content-Type: application/json; charset=utf-8');
echo json_encode($json);

В контроллере вам просто нужно загрузить это представление с массивом в качестве параметра (я думаю, что stdClass также допустим):

    $data['json'] = array("foo" => "bar", "bar" => "foo");
$this->load->view('your_json_view', $data);
1

Другие решения

Других решений пока нет …