jqGrid with JSON data renders table as empty

后端 未结 9 2164
孤独总比滥情好
孤独总比滥情好 2020-12-30 06:39

I\'m trying to create a jqgrid, but the table is empty. The table renders, but the data doesn\'t show.

The data I\'m getting back from the php call is:



        
相关标签:
9条回答
  • 2020-12-30 07:32

    I experienced the same problem when migrating from jqGrid 3.6 to jqGrid 3.7.2. The problem was my JSON was not properly double-quoted (as required by JSON spec). jqGrid 3.6 tolerated my invalid JSON but jqGrid 3.7 is stricter.

    Refer here: http://simonwillison.net/2006/Oct/11/json/

    Invalid:

    {
    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"]}
    ]}
    

    Valid:

    {
    "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"]}
    ]}
    
    0 讨论(0)
  • 2020-12-30 07:32

    I don't think your ID is the correct type, I think it should be an int.

    For the given json you really don't need the jsonreader settings. What you have listed is the defaults anyway, plus you don't have a subgrid in your json.

    Try this:

    {
    "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"]}
    ]}
    
    0 讨论(0)
  • 2020-12-30 07:34

    This might be a older post but I will post my success just to help others.

    Your JSON needs to be in this format:

    {
    "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"
            ]
        }
    ]
    

    }

    and I wrote this model in Zend so you can use it if you feel like it. Manipulate it how you want.

    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;
    }
    
    0 讨论(0)
提交回复
热议问题