2013-11-07 4 views
0

Я пытаюсь загрузить результат из PHP-скрипта в jqgrid, но я вижу таблицу без данных.Ошибка при загрузке данных в jqgrid

<div id='Results'> 
<div id= 'abcd' style="display:block";> 
<?php include("simple.php");?> 
</div> 
<script type="text/javascript"> 
jQuery(function($) { 
var data= $('#abcd').text(); 
var data1= data.replace(/\"/ig,'\"'); 
var data1= data1.replace(/[\“\”\″]/ig,'\"'); 
jQuery("#tableid").jqGrid({ 
dataType: "json", 
data:data1, 
colNames:['snp_id','chr','start_pos','end_pos','class','refbase','variantbase'], 
colModel:[ 
    {name:'snp_id',index:'snp_id', width:50}, 
    {name:'chr',index:'chr', width:50}, 
    {name:'start_pos',index:'start_pos', width:60}, 
    {name:'end_pos',index:'end_pos', width:75}, 
    {name:'class',index:'class', width:75, align:"right" }, 
    {name:'refbase',index:'refbase', width:75}, 
    {name:'variantbase',index:'variantbase', width:150} 
], 
pager: '#pager', 
rowNum:100, 
sortname: 'snp_id', 
sortorder: "asc", 
viewrecords: true, 
gridview: true, 
height: '100%', 
width: '100%', 
caption:"Title", 
loadComplete: function(reload) { 
    jQuery("#myGridID").trigger("reloadGrid"); 
} 
}); 
}); 
</script> 

Simple.php получать данные в формате JSON Ито в DIV с именем 'ABCD'

{"total":1,"page":1,"records":5,"rows":[{"id":"CaSNP000002","cell":[{"snp_id":"CaSNP000002","chr":"Ca4","start_pos":"10077235","end_pos":"10077254","class":"D","refbase":"CTCTCTCTCTCTCTCTCTCT","variantbase":null}]},{"id":"CaSNP000003","cell":[{"snp_id":"CaSNP000003","chr":"Ca4","start_pos":"10077245","end_pos":"10077254","class":"D","refbase":"CTCTCTCTCT","variantbase":null}]},{"id":"CaSNP000004","cell":[{"snp_id":"CaSNP000004","chr":"Ca4","start_pos":"10077253","end_pos":"10077254","class":"D","refbase":"CT","variantbase":null}]},{"id":"CaSNP000005","cell":[{"snp_id":"CaSNP000005","chr":"Ca4","start_pos":"10077254","end_pos":"10077255","class":"I","refbase":"------                        ","variantbase":"CTCTCT"}]},{"id":"CaSNP000006","cell":[{"snp_id":"CaSNP000006","chr":"Ca4","start_pos":"10077254","end_pos":"10077255","class":"I","refbase":"--------                       ","variantbase":"CTCTCTCT"}]}]} 
+0

Какая ошибка вы получаете? – Svetoslav

+0

Я не видел никаких ошибок, но таблица пуста – Dadu

ответ

0

Попробуйте этот код ... Я не 100% он будет работать :)

PS> Обновлено .. Если его не работает, попробуйте отладить вашу проблему .. Поиск ошибок использует con единственных журналы и т.д .. Без ошибок его не так легко найти ваши проблемы

<div id= 'abcd' style="display:block";> 
<?php include("simple.php");?> 
</div> 
<script type="text/javascript"> 
jQuery(function($) { 
var data= $('#abcd').text(); 
data = jQuery.trim(data); // to remove all empty spaces else json parse may fail 
data = jQuery.parseJson(data); // parsing string to json object/array 
jQuery("#tableid").jqGrid({ 
    datatype: "local", 
    colNames:['snp_id','chr','start_pos','end_pos','class','refbase','variantbase'], 
    colModel:[ 
     {name:'snp_id',index:'snp_id', width:50}, 
     {name:'chr',index:'chr', width:50}, 
     {name:'start_pos',index:'start_pos', width:60}, 
     {name:'end_pos',index:'end_pos', width:75}, 
     {name:'class',index:'class', width:75, align:"right" }, 
     {name:'refbase',index:'refbase', width:75}, 
     {name:'variantbase',index:'variantbase', width:150} 
    ], 
    pager: '#pager', 
    rowNum: data.rows.length, 
    sortname: 'snp_id', 
    sortorder: "asc", 
    viewrecords: true, 
    gridview: true, 
    height: '100%', 
    width: '100%', 
    caption:"Title", 
    loadComplete: function(reload) { 
     jQuery("#myGridID").trigger("reloadGrid"); 
    } 
}); 
var mydata = data.rows; 
for(var i=0;i<=mydata.length;i++) 
    jQuery("#tableid").jqGrid('addRowData',i+1,mydata[i]); 
}); 
</script> 
+0

Без изменений. , , все равно его же – Dadu

+0

Попробуйте добавить console.log (data); в начале вашего javascript после строки var data =, чтобы увидеть, правильно ли он разобрался JSON .. – Svetoslav

+0

ya его разбор правильно. Я могу видеть данные в формате json в консоли firebug. "Object {total = 1, page = 1, records = 11, more ...}" – Dadu

0

Я некоторые записи демо на основе вашего сниппета, используя тип данных, как это:

  datatype: 'jsonstring', 
      datastr:data, 

наконец заселили сетку для меня. Я нашел решение отсюда https://stackoverflow.com/a/6833082/1945020

+0

Создает пустые строки. все еще данные не загружаются – Dadu

+0

Разница, возможно, была, что я удалил PHP-часть allthogether. Я просто добавил JSON-проверенную json-строку в div и прочитал ее переменной данных. Возможно, вы можете попытаться изолировать проблему, вставив вывод своего PHP в div, прочитайте его оттуда и посмотрите, работает ли это. – MMi

Смежные вопросы