Here is how I get an index of records to fill a list box.
JS: function index() { var list = $("#list_box"); alert("index"); list.empty(); //clear list box. postData = "";
sqlBusy = true;
$.myPost('idx', postData, function(data) {
sqlBusy = false;
alert(data);
//var myRec = eval('(' + data + ')'); // I know totally evil, so they say!!!
var myRec = JSON.parse(data); // as opposed to jQuery.ParseJSON...??? Works
//var myRec = jQuery.parseJSON('(' + data + ')'); // no work. doc says cannot use escape chars?????
//var myRec = jQuery.parseJSON(data); // And so which way to go, eval bad. Backend formats the hell out of string!!!
//alert(myRec.IdNum);
switch (myRec.type)
{
case PAYLOAD_DATA:
for (i = 0; i < myRec.CoverageCategories.Category.length; i++) {
//list.append(new Option(myRec.Category[i].Desc, myRec.Category[i].Id));
//opt = new Option(myRec.Category[i].Dessc, myRec.Category[i].Id);
//alert(myRec.Category[i].Desc);
viewModel.addItem(myRec.CoverageCategories.Category[i].Desc, myRec.CoverageCategories.Category[i].Id);
}
break;
case PAYLOAD_MSG:
break;
case PAYLOAD_ERROR:
break;
default:
alert("UnKnown Message from Server.");
break;
}
}, sqlError, TIMEOUT);
viewModel.execClear();
}
Laravel Controller: public function index() { $payload = null; try { $rootName = ""; $root = null; $type = -1;
$cmd = new SelectAllCvgCatTypes();
$ret = $cmd->get();
if (Utils::isType($ret, "DataMap"))
{
$rootName = $ret->getName();
$root = $ret;
$type = 0;
$debbie = 1;
} else if (Utils::isType($ret, "Exception"))
{
$rootName = "Error";
$root = $ret;
$type = Payload::ERROR;
} else if (Utils::isType($ret, "Message"))
{
$rootName = "Msg";
$root = $ret;
$type = Payload::MSG;
}
// Create Payload object.
$payload = Payload::create($type, 0, "Index", $rootName, $root);
} catch (Exception $e)
{
return $e; // Should never fire ?
} finally
{
$ret = $payload->toJSON();
return $ret;
}
}
Laravel Model to Get Data: public function index() { $ret = null; $select = (new Select()) ->addColumn(CvgCatDefs::listCols()) ->addFrom(CvgCatDefs::table()); $result = $this->sql->doQuery($select->toString());
if (Utils::isType($result, 'ResultSet'))
{
$rs = new ResultRows();
$rs
->addColumn(new ResultColumn("Melissa"))
->addColumn(new ResultColumn("Denise", ColType::INT, 999));
$row = $rs->newRow();
$row->set("Melissa", "Test");
$rs->addRow($row);
$row = $rs->newRow();
$row->set("Melissa", "Test1");
$rs->addRow($row);
$row = $rs->newRow();
$row->set("Melissa", "Test2");
$rs->addRow($row);
$rSet = new ResultSet();
$rSet->addResult($rs);
// We are going do DataMaps in the actual command handler.
// So here we are going to return a ResultStArray Object..
$ret = (new ResultSetArray())
->addResultSet($result)
->addResultSet($rSet);
}
return $ret;
}
// uses my PHP MySQL library. // The controller takes the return and renders 1 of 3 objects, Data Return which is a JSON object. Message Object which will rendered by controller into a Message JSON Payload, or an Exception Payload.