سؤال

أحاول إنشاء jqgrid ، ولكن الجدول فارغ.الجدول تقدمها ، ولكن البيانات لا تظهر.

البيانات أنا أعود من دعوة php هو:

{
"page":"1",
"total":1,
"records":"10",
"rows":[
{"id":"2:1","cell":["1","image","Chief Scout","Highest Award test","0"]},
{"id":"2:2","cell":["2","image","Link Badge","When you are invested as a Scout, you may be eligible to receive a Link Badge. (See page 45)","0"]},
{"id":"2:3","cell":["3","image","Pioneer Scout","Upon completion of requirements, the youth is invested as a Pioneer Scout","0"]},
{"id":"2:4","cell":["4","image","Voyageur Scout Award","Voyageur Scout Award is the right after Pioneer Scout.","0"]},
{"id":"2:5","cell":["5","image","Voyageur Citizenship","Learning about and caring for your community.","0"]},
{"id":"2:6","cell":["6","image","Fish and Wildlife","Demonstrate your knowledge and involvement in fish and wildlife management.","0"]},
{"id":"2:7","cell":["7","image","Photography","To recognize photography knowledge and skills","0"]},
{"id":"2:8","cell":["8","image","Recycling","Demonstrate your knowledge and involvement in Recycling","0"]},
{"id":"2:10","cell":["10","image","Voyageur Leadership ","Show leadership ability","0"]},
{"id":"2:11","cell":["11","image","World Conservation","World Conservation Badge","0"]}
]}

جافا سكريبت التكوين تبدو مثل ذلك:

$("#"+tableId).jqGrid ({
    url:'getAwards.php?id='+classId,
    dataType : 'json',
    mtype:'POST',
    colNames:['Id','Badge','Name','Description',''],
    colModel : [
        {name:'awardId', width:30, sortable:true, align:'center'},
        {name:'badge', width:40, sortable:false, align:'center'},
        {name:'name', width:180, sortable:true, align:'left'},
        {name:'description', width:380, sortable:true, align:'left'},
        {name:'selected', width:0, sortable:false, align:'center'}
        ],
    sortname: "awardId",
    sortorder: "asc",
    pager: $('#'+tableId+'_pager'),
    rowNum:15,
    rowList:[15,30,50],
    caption: 'Awards',
    viewrecords:true,
    imgpath: 'scripts/jqGrid/themes/green/images',
    jsonReader : { 
        root: "rows", 
        page: "page", 
        total: "total", 
        records: "records", 
        repeatitems: true, 
        cell: "cell", 
        id: "id",
        userdata: "userdata", 
        subgrid: {root:"rows", repeatitems: true, cell:"cell" } 
    },
    width: 700,
    height: 200
});

HTML تبدو مثل:

<table class="awardsList" id="awardsList2" class="scroll" name="awardsList" />
<div id="awardsList2_pager" class="scroll"></div>

أنا لست متأكدا من أن كنت بحاجة إلى تحديد jsonReader ، حيث حاولت الحفاظ على الافتراضي.إذا كان رمز php سوف تساعد أستطيع بعد ذلك أيضا.

هل كانت مفيدة؟

المحلول

أنا حصلت على العمل!

على نوع البيانات يجب أن يكون الحقل نوع البيانات.انها قضية حساسة.

نصائح أخرى

وoccures المشكلة أيضا عند تضمين النصي <م> jquery.jqGrid.min.js قبل ذلك grid.locale-en.js . حدد هذا الخيار إذا كان هناك أي مشاكل مع استدعاء الأسلوب حدة التحكم.

ولقد واجهت نفس المشكلة عند الانتقال من jqGrid 3.6 إلى jqGrid 3.7.2. كانت المشكلة كان لي JSON غير صحيح ضعف نقلت (كما هو مطلوب من قبل JSON المواصفات). jqGrid 3.6 التسامح بلدي JSON غير صالحة ولكن jqGrid 3.7 هو أكثر صرامة.

وارجع هنا: http://simonwillison.net/2006/Oct/11/json /

<القوي> غير صالح : ل

{
page:"1",
total:1,
records:"10",
rows:[
    {"id":"2:1","cell":["1","image","Chief Scout","Highest Award test","0"]},
    {"id":"2:2","cell":["2","image","Link Badge","When you are invested as a Scout, you may be eligible to receive a Link Badge. (See page 45)","0"]},
    {"id":"2:3","cell":["3","image","Pioneer Scout","Upon completion of requirements, the youth is invested as a Pioneer Scout","0"]}
]}

على صالح : ل

{
"page":"1",
"total":1,
"records":"10",
"rows":[
    {"id":"2:1","cell":["1","image","Chief Scout","Highest Award test","0"]},
    {"id":"2:2","cell":["2","image","Link Badge","When you are invested as a Scout, you may be eligible to receive a Link Badge. (See page 45)","0"]},
    {"id":"2:3","cell":["3","image","Pioneer Scout","Upon completion of requirements, the youth is invested as a Pioneer Scout","0"]}
]}

وأنا أيضا حصلت على العمل: نوع البيانات هو الإملاء الصحيح - أنه يظهر بهذه الطريقة في المثال إلا أنه يتعارض مع كل شيء آخر في المكتبة، لذا كان من السهل الحصول على الخطأ

وأنا تعبوا جدا مطاردة هذه الوثائق المتناثرة حولها، وأنا حقا أشعر JSON، وهو الصحيح والسليم لتستخدم في جافا سكريبت، وقد أعطيت حقا تغطية قصيرة لصالح XML. بايثون وجافا سكريبت معا، من خلال JSON، هو مزيج قوي حقا، لكنه صراع مستمر مع هذه المكتبة معينة.

وأي شخص لديه بديل:

1> يدعم بشكل صحيح مواضيع مسج UI (بما في ذلك تدوير الزوايا!) ( http://datatables.net ديها الكثير دعم أجمل لالموضوعات)

2> يتيح تغيير حجم الأعمدة ( http://datatables.net لا يدعم هذا من خارج منطقة الجزاء )

3> يتيح الشبكات الفرعية ( http://datatables.net يتيح لك أن تفعل ما تريد هنا، من خلال حدث)

واسمحوا لي أن أعرف. أقضي المزيد من الوقت على هذا الجزء واحد من واجهة بلدي من على بقية كاملة من ذلك جنبا إلى جنب والأمر كله في الوقت الذي يقضيه في البحث عن أمثلة عملية و"محاولة أشياء" الذي هو مجرد الحصول على مزعج.

S

وربما تكون هذه آخر القديمة ولكن سأقوم بعد نجاحي فقط لمساعدة الآخرين.

وJSON لديك يجب أن يكون في هذا الشكل:

{
"rows": [
    {
        "id": 1,
        "cell": [
            1,
           "lname",
            "fname",
            "mi",
            phone,
            "cell1",
            "cell2",
            "address",
            "email"
        ]
    },
    {
        "id": 2,
        "cell": [
            2,
            "lname",
            "fname",
            "mi",
            phone,
            "cell1",
            "cell2",
            "address",
            "email"
        ]
    }
]

و}

ولقد كتبت هذا النموذج في زند حتى تتمكن من استخدامه إذا كنت أشعر بأن ذلك. التلاعب به كيف تريد.

public function fetchall ($sid, $sord)
{
    $select = $this->getDbTable()->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
    $select->setIntegrityCheck(false)
           ->join('Subdiv', 'Subdiv.SID = Contacts.SID', array("RepLastName" => "LastName", 
                                                                "Subdivision" => "Subdivision",
                                                                "RepFirstName" => "FirstName"))
           ->order($sid . " ". $sord);

    $resultset = $this->getDbTable()->fetchAll($select);
    $i=0;
    foreach ($resultset as $row) {
        $entry  = new Application_Model_Contacts();

        $entry->setId($row->id);
        $entry->setLastName($row->LastName);
        $entry->setFirstName1($row->FirstName1);
        $entry->setFirstName2($row->FirstName2);
        $entry->setHomePhone($row->HomePhone);
        $entry->setCell1($row->Cell1);
        $entry->setCell2($row->Cell2);
        $entry->setAddress($row->Address);
        $entry->setSubdivision($row->Subdivision);
        $entry->setRepName($row->RepFirstName . " " . $row->RepLastName);
        $entry->setEmail1($row->Email1); 
        $entry->setEmail2($row->Email2);

        $response['rows'][$i]['id'] = $entry->getId(); //id
        $response['rows'][$i]['cell'] = array (
                                                $entry->getId(),
                                                $entry->getLastName(),
                                                $entry->getFirstName1(),
                                                $entry->getFirstName2(),
                                                $entry->getHomePhone(),
                                                $entry->getCell1(),
                                                $entry->getCell2(),
                                                $entry->getAddress(),
                                                $entry->getSubdivision(),
                                                $entry->getRepName(),
                                                $entry->getEmail1(),
                                                $entry->getEmail2()
                                            );
        $i++;

    }
    return $response;
}

الرجال فقط أريد مساعدتك في هذا.حصلت التالية عملت:

سلمان

var mydata1 = { "page": "1", "total": 1, "records": "4","rows": [{ "id": 1, "cell": ["1", "cell11", "values1" ] },
    { "id": 2, "cell": ["2", "cell21", "values1"] },
    { "id": 3, "cell": ["3", "cell21", "values1"] },
    { "id": 4, "cell": ["4", "cell21", "values1"] }
]};

//مارك أقل أهمية خط.نوع البيانات "jsonstring" عملت لي بدلا من "سلمان".

datatype: "jsonstring",

contentType: "application/json; charset=utf-8",

datastr: mydata1,

colNames: ['Id1', 'Name1', 'Values1'],

colModel: [
      { name: 'id1', index: 'id1', width: 55 },
      { name: 'name1', index: 'name1', width: 80, align: 'right', sorttype: 'string' },
      { name: 'values1', index: 'values1', width: 80, align: 'right', sorttype: 'string'}],

التحيات ،

في حالتي، كان السبب في المشكلة السطر التالي من التعليمات البرمجية PHP (الذي اتخذ من jqGrid تجريبي):

$responce->page = $page;

ما هو الخطأ هنا هو أن: أنا الوصول إلى الصفحة ممتلكات $responce الكائن دون خلق لأول مرة. يحدث هذا أباتشي لعرض رسالة الخطأ التالية:

Strict Standards: Creating default object from empty value in /home/mariusz/public_html/rezerwacja/apps/frontend/modules/service/actions/actions.class.php on line 35

وأخيرا رسالة الخطأ كان يتم إرسالها إلى القارئ سلمان ضمن البرنامج النصي.

وأنا ثابت على المشكلة عن طريق إنشاء كائن فارغ:

$responce = new stdClass();

وأنا لا أعتقد ID الخاص بك هو النوع الصحيح، وأعتقد أنه يجب أن يكون عدد صحيح.

لوسلمان منحك حقا لا تحتاج إلى إعدادات jsonreader. ما قمت المذكورة هي الإعدادات الافتراضية على أي حال، بالإضافة إلى أنك لم يكن لديك subgrid في سلمان بك.

وجرب هذا:

{
"page":"1",
"total":1,
"records":"10",
"rows":[
{"id":1 ,"cell":["1","image","Chief Scout","Highest Award test","0"]},
{"id":2,"cell":["2","image","Link Badge","When you are invested as a Scout, you maybe eligible to receive a Link Badge. (See page 45)","0"]},
{"id":3,"cell":["3","image","Pioneer Scout","Upon completion of requirements, the youth is invested as a Pioneer Scout","0"]},
{"id":4,"cell":["4","image","Voyageur Scout Award","Voyageur Scout Award is the right after Pioneer Scout.","0"]},
{"id":5,"cell":["5","image","Voyageur Citizenship","Learning about and caring for your community.","0"]},
{"id":6,"cell":["6","image","Fish and Wildlife","Demonstrate your knowledge and involvement in fish and wildlife management.","0"]},
{"id":7,"cell":["7","image","Photography","To recognize photography knowledge and skills","0"]},
{"id":8,"cell":["8","image","Recycling","Demonstrate your knowledge and involvement in Recycling","0"]},
{"id":9,"cell":["10","image","Voyageur Leadership ","Show leadership ability","0"]},
{"id":10,"cell":["11","image","World Conservation","World Conservation Badge","0"]}
]}

وكنت أعمل مع المزج 2.4، كان يجري مجنون مع هذه المشكلة، حاولت الكثير من الأشياء، مثل تثبيت الإصدارات السابقة من PHP وما شابه 5.2، التابعين حاولت في نظام التشغيل Windows XP، والكثير من الخيارات jqGrid. كذلك أشكر لأوليغ أخيرا وماريوس أجد الخط الوحيد:

$responce = new stdClass(); 

وقبل استخدام $ التجاوب يمكن أن تحل كل شيء، والآن بلدي الشبكة هو يعمل العظمى!

وبفضل أصدقائي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top