我开发一个平台,使用mvc + wcf + jquery + ajax ..
我没有很好的英语,所以我上传图片
这是Ajax响应
<script type='text/javascript'>
$(document).ready(function () {
$('#{0}').flexigrid({
url: 'GetDataList/',
singleSelect: true,
colModel: [{1}],
searchitems: [{2}],
sortorder: 'asc',
usepager: true,
title: '{3}',
rp: 15,
showTableToggleBtn: true
});
alert('{0} isimli grid load oldu');
});
</script>
我正确看到了警告消息但插件有时无法加载
并且不仅对于Flexigrid而且有时候加载有时不加载jquery插件..
编辑1 -
我认为无法初始化来自ajax的jquery请求
答案 0 :(得分:1)
如果我理解你的问题,这是我的方法,以初始化flexigrid
jQuery(document).ready(function() {
jQuery("#invitedschoolstable").flexigrid({
url: 'index.php?option=com_users&task=profile.getinvitedschools&query='+id+'&format',//getSearchResults()
dataType: 'json',
colModel : [
{display: 'id', name : 'id', width : 40, sortable : true, align: 'center', hide: true},
{display: 'Σχολή', name : 'schoolname', width : 180, sortable : true, align: 'left', hide: false},
{display: 'Στοιχεία επικοινωνίας', name : 'stoixeiaepik', width : 250, sortable : false, align: 'left', hide: false},
{display: 'Κωδ.Σχολ', name : 'schoolid', width : 250, sortable : false, align: 'left', hide: true}
],
sortname: "id",
sortorder: "asc",
usepager: true,
title: 'Λίστα προσκεκλημένων σχολών',
useRp: true,
rp: 10,
showTableToggleBtn: true,
width: 500,
nowrap: false,
height: 'auto',
onSuccess: invitedschoolstableSuccess,
qtype:'eventid',
query: id
});
});
这是通过ajax访问的后端的php 注意我在这里使用了一些室内joomla技巧,以便请求发布的值并对数据库进行查询但没有太大区别。只需用php $ _REQUEST和经典的mysql命令替换它们即可访问数据库。 所以不要盲目复制粘贴代码。
public function getinvitedschools(){
$db = JFactory::getDBO();
$page = 1; // The current page
$sortname = 'id'; // Sort column
$sortorder = 'asc'; // Sort order
$qtype = ''; // Search column
$query = ''; // Search string
// Get posted data
$jinput = JFactory::getApplication()->input;
$page = $jinput->get('page','','INT');
//$eventid = $jinput->get('eventid','','INT');
$sortname = $jinput->get('sortname','','STRING');
$sortorder = $jinput->get('sortorder','','STRING');
$qtype = $jinput->get('qtype','','STRING');
$query = $jinput->get('query','','STRING');
$rp = $jinput->get('rp');
// Setup sort and search SQL using posted data
$sortSql = ($sortname != '' && $sortorder != '') ? " order by $sortname $sortorder" : '';
if (strpos($query, '%') !== false) {
$searchSql = ($qtype != '' && $query != '') ? "where $qtype like '$query'" : '';
}
else
{
$searchSql = ($qtype != '' && $query != '') ? "where $qtype = '$query'" : '';
}
if($searchSql=="")
$searchSql.=" where d.dhmos=b.id and d.nomos=c.id and d.id=e.schoolid ";
else
$searchSql.=" and d.dhmos=b.id and d.nomos=c.id and d.id=e.schoolid ";
// Get total count of records
$sql = "select count(*)
FROM #__Greekgeolocations b ,
#__Greekgeolocations c,
#__fcse_fightclubs d ,
#__fcse_eventsdiasil_schoollistselection e
$searchSql";
$db->setQuery($sql);
$total = $db->loadResult();
$pageStart = ($page-1)*$rp;
$limitSql = "limit $pageStart, $rp";
$data = array();
$data['page'] = $page;
$data['total'] = $total;
$data['rows'] = array();
$sql = "SELECT d.id,
b.locname as polhname,
c.locname as nomosname,
d.address,
d.name,
e.responsedate,
e.responseid
FROM #__Greekgeolocations b ,
#__Greekgeolocations c,
#__fcse_fightclubs d ,
#__fcse_eventsdiasil_schoollistselection e
$searchSql
$sortSql
$limitSql";
//echo $sql;
//die();
$db->setQuery($sql);
$results = $db->loadObjectList();
foreach( $results as $row ){
$today = new DateTime($row->thetimestamp);
$today = $today->getTimestamp();
//$today = new DateTime('2013-03-21 17:30:00');
//$today = $today->getTimestamp();
$data['rows'][] = array(
'id' => $row->id,
'cell' => array($row->id,
$row->name,
$row->nomosname.' '.$row->polhname.' '.$row->address,
$row->id
));
}
echo json_encode($data);
}
您可以将此代码添加到jquery就绪状态或任何其他事件,也可以使用qtype和query传递第一个初始化值。
如果你需要添加需要flexigrid 加载的代码,请使用onSuccess:并将一个方法挂钩,就像inviteschoolstableSuccess一样,这实际上是你的代码中定义的函数,如函数inviteschoolstableSuccess(){ “命名你喜欢的任何东西”,这样你就可以在那里执行你的代码。
此外,如果您稍后需要使用其他选项重新加载您的flexigrid,您可以在点击事件或您希望的任何其他事件中使用以下代码
jQuery('#invitedschoolstable').flexOptions({ qtype:'school',query: 32 }).flexReload();
你也可以分配变量而不是固定值,就像我做“学校”和32。
我希望这会有所帮助