Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com problemas para mudar de página no Flexigrid, ele resulta os dados a partir de uma consulta mysql com LIMIT: /XML
$xml = new gerenciaXML(). $doc = $xml->leituraXML($nmFile). $bi_tab_codigo = $doc->getElementsByTagName('bi')->item(0)->getAttribute("codigo_tabela"). //Conexão$conexaoSQL = "select bi_tab_conectado, bi_con_servidor, bi_con_database, bi_con_usuario, bi_con_senha from bi_tabela as t WHERE bi_tab_codigo = ".$bi_tab_codigo. mysql_select_db($database_bi, $bi). $Result1 = mysql_query($conexaoSQL, $bi) or die(mysql_error()). $row_conexao = mysql_fetch_assoc($Result1). $tabela = nmTabela($bi_tab_codigo, $database_bi, $bi, $conectado). $Where = condicaoWhere($doc, $database_bi, $bi, $conectado). $exibicao = exibicao($doc, $database_bi, $bi, $conectado). $orderBy = ordenacao($doc, $database_bi, $bi, $conectado). mysql_select_db($database_bi, $bi). $query_fonte = $stringSQL. $Str_fonte = mysql_query($query_fonte, $bi) or die(mysql_error()). $totalRows_Str_fonte = mysql_num_rows($Str_fonte). //Monta colunas do select
$colunas = array(). $meta = mysql_fetch_field($Str_fonte, $i). array_push($colunas,$meta->name). $i++. }
$numColunas = count($colunas). $page = 1. $total= $totalRows_Str_fonte. header("Expires: Mon, 26 Jul 2050 05:00:00 GMT" ). header("Last-Modified: ". gmdate( "D, d M Y H:i:s" ). "GMT" ). header("Cache-Control: no-cache, must-revalidate" ). header("Pragma: no-cache" ). header("Content-type: text/x-json"). $json = "". $json.= "{\n". $json.= "page: $page,\n". $json.= "total: $total,\n". $json.= "rows: [". $rc = false. if ($rc) $json.= ",". $json.= "\n{". $json.= "id:'".$x."',". $b=1. foreach($colunas as $indice=>$valor){
$conteudo = retiraTagHTML(addslashes(($row_Str_fonte[$valor]))). //Primeira colunaif($b==1){
//primeira célula sempre será o id do banco. //$json.= "cell:['".$row_Str_fonte['bi_fonte_id']."|IdB@ckBs'". $json.= "cell:['".addslashes($conteudo)."'". $json.= ",'".addslashes($conteudo)."'". }$b++. }$json.= "}". $rc = true. $x++. }$json.= "]\n". $json.= "}". echo $json. e na página onde se encontra o flexigrid está desta forma: <table id="flex1" style="display:none"></table>
<script type="text/javascript">
conteudoBase=''. $('.flexme1').flexigrid(). $('.flexme2').flexigrid({height:'auto',striped:false}). $("#flex1").flexigridurl: '/corporativo/servicos/bi/<?php echo $urlRequireAjax.?>consultaBS.php?id_file=<?php echo $_GET['id_file'].?>', <?php //descobre título das colunas no select montado $elementoExibe = $doc->getElementsByTagName("condicaoExibicao")->item(0)->childNodes. $e="". $a=0. foreach($elementoExibe as $condExibe){ $titulo = utf8_decode($condExibe->getAttribute('tituloColuna')). $codigo = explode("_",$condExibe->tagName). if($a == 0){
$e.= "{display: '$titulo', name: '".$codigo[1]."', width: 80, sortable: false, align: 'left'}\r\n". $e.= ",{display: '$titulo', name: '".$codigo[1]."', width: 80, sortable: false, align: 'left'}\r\n". }
$a++. } echo $e.?> ],). function test(com,grid)alert("Selecione uma linha antes de consultar!"). return false. } if (com=='Consultar dados no PeopleRank')// var celSelect = $('.trSelected',grid).text().split("|IdB@ckBs"). var celSelect = $('.trSelected',grid).cell. //row.cell[idx]. alert(celSelect). //window.top.exibeDetalhes(celSelect[0]). }
else if (com=='Adicionar')alert('Adicionar novo Item'). }
} function alimentaDadosBB(v){
var vr = v.replace("row",""). var conteudoLinha = conteudoBase.rows[vr].cell. document.getElementById("vrCampos").value = conteudoLinha. }$(this).parent().toggleClass('fh'). }
). não tem, o botão next do flexigrid, não muda de página apenas, porém eu nunca mexi com essa ferramenta, então estou meio que fazendo as coisas darem certo na sorte rs.
entrei no código fonte da página, e o campo do input está sem name, onde provavelmente deveria estar como : name="page", pois a query pega o valor do input e coloca no LIMIT para fazer a paginação.
Porém ao inserir o name no input pelo código fonte da página, deu mais ou menos certo.
Quando troquei para a página 2, funcionou, porém foi setado na query um LIMIT 2,10, e então não consigo fazer a paginação novamente em seguida, pois ele entende que só há aquilo de registros por causa do limit. Gostaria de saber como posso fazer com que a página continue fazendo a paginação de acordo com o meu LIMIT.
Query:
$page = @$_POST['page'];
$rp = @$_POST['rp'];
$sortname = @$_POST['sortname'];
$sortorder = @$_POST['sortorder'];
if (!$sortname) $sortname = $_SESSION['ordenacao'];
if (!$sortorder) $sortorder = 'asc';
$sort = "ORDER BY $sortname $sortorder";
$start = (($page-1) * $rp);
$limit = "LIMIT $start, $rp";
$stringSQL = "select $exibicao from $tabela $Where $orderBy $limit";
Obs: O flexigrid está dentro de um iframe sem src, e não sei como faço para fazer as alterações, por isso inseri o name no input pelo código fonte.
já viu se no console tem algum erro?