Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] Droplist (lista suspensa) PHP


dinohills

Pergunta

Pessoal estou fazendo paginação com o php até ai tudo beleza.

Mas o que eu estou fazendo é o seguinte, a paginação me mostra o numero de páginas geradas ai eu coloco esses números em uma droplist beleza, ai quando eu seleciono um numero e clico no botão pra ele ir na pagina selecionada ele não vai :angry: !!

Dêem uma olhada no código e vê o que pode tá errado.

<?
// Informações da query. No caso, "SELECT * FROM contatos"
$campos_query = "*";  
$final_query  = "FROM contatos";

// Declaração da pagina inicial  
$pagina = $_GET["pagina"];  
if($pagina == "") {  
    $pagina = "1";  
} 

// Maximo de registros por pagina  
$maximo = 5;

// Calculando o registro inicial  
$inicio = $pagina - 1;  
$inicio = $maximo * $inicio;

// Conta os resultados no total da minha query
$strCount = "SELECT COUNT(*) AS 'num_registros' $final_query";
$query2    = mysql_query($strCount);
$row      = mysql_fetch_array($query2);
$total    = $row['num_registros'];

// Calculando pagina anterior
    $menos = $pagina - 1;

// Calculando pagina posterior
    $mais = $pagina + 1;

$pgs = ceil($total / $maximo);
    if($pgs > 1 ) {
        // Mostragem de pagina
        if($menos > 0 ){
            echo "<a href=\"?pagina=1\">primeira</a> ";
        }
        else {
            echo "<a>primeira</a>";
        }
        if($menos > 0) {
           echo "<a href=\"?pagina=$menos\">anterior</a> ";
        }

//droplist com os numeros da pagina
echo "<form name=\"form\" action=\"?pagina=$i \" method=\"post\">";
echo "<select name=\"opcao[]\">";
for($i=1;$i <= $pgs;$i++) {
       echo "<option  value=\"$i\" > $i</option>";
}
echo "</select><input type=\"submit\" value=\"muda\"></form>";

        if($mais <= $pgs) {
           echo "   <a href=\"?pagina=$mais\">próxima</a>";
        }
        if($mais <= $pgs) {
        echo "   <a href=\"?pagina=$pgs\">ultima</a>";
        }
    }
?>

Bom ta ai o código se alguém souber o que eu posso faze pra resolve isso posta ai :rolleyes: vlw!!!!!

Editado por dinohills
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
Posta o código da droplist por favor.

Estava montando assim:

//droplist com os numeros da pagina
echo "<form name=\"form\" action=\"?pagina=$i\" method=\"GET\">";
echo "<select name=\"opcao\">";
for($i=1;$i <= $pgs;$i++) {
        echo "<option  value='{$i}' >$i</option>";
}
echo "</select><input type=\"submit\" value=\"muda\"></form>";

Link para o comentário
Compartilhar em outros sites

  • 0

Então coloque este código aqui:

<script language="JavaScript">
function redirecionar()
{
    var selecaodroplist = document.form.opcao.value;
   window.location.replace("nomedapagina.php?pagina"+selecaodroplist);
}
</script>
...
<input type="button" value="Ir para a página" onclick="redirecionar();">

Link para o comentário
Compartilhar em outros sites

  • 0

beleza dinohills,

eu tenho um sistema de paginação do qual fica dentro de um combox.. vou lhe passar o código:

1º - você cria uma pasta chamada de paginacao e dentro você coloca o seguinte arquivo:

index.php (esse index pertence a paginacao)

<script type="text/JavaScript">

<!--

function MM_jumpMenu(targ,selObj,restore){ //v3.0

eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

if (restore) selObj.selectedIndex=0;

}

//-->

</script>

<?php

function paginar($pag_referencia, $pagina, $sql){

global $result, $links, $linkss, $inicio;

$tamanho_pagina = 9;

if (!$pagina){

$pagina = 1;

}else{

$pagina = $pagina;

}

$mat = $pagina - 1;

$inicio = $mat * $tamanho_pagina;

$rs = mysql_query($sql) or die("Erro: 0000 - Arquivo: paginacao/index.php" . mysql_query());

$ssql = " ".$sql." limit " . $inicio . "," . $tamanho_pagina;

$result = mysql_query($ssql) or die(" <br> Erro: paginacao - 001" . mysql_error());

$num_total_registros = mysql_num_rows($rs);

$total_paginas = ceil($num_total_registros / $tamanho_pagina);

$volta = $pagina - 1;

$proxima = $pagina + 1;

$linkss .= "<center><b>Total de registros encontrados: <font color=#FF0000>" .$num_total_registros. "</font></b></center>";

$links .= "<form name=\"form1\">";

$links .= "Ir para a página: <select name=\"menu1\" onchange=\"MM_jumpMenu('parent',this,0)\" style=\"font-size:11px; font-family:verdana; background-color: #EFEFEF\">";

$links .= "<option>---</option>";

for ($i = 0; $i < $total_paginas; $i++){

$pag = $i + 1;

$links .= "<option value=\"".$pag_referencia."&pagina= . $pag . "\">" .$pag. "</option>";

}

$links .= "</select><br>";

if($volta > 0){

$links .= "<a href='".$pag_referencia."&pagina=" . $volta . "'><< Voltar</a> ";

}

if($pagina < $total_paginas) {

$links .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='".$pag_referencia."&pagina=" .$proxima. "'>Próxima >></a>";

}

$links .= "<br><b>Página <font color=brown size=2 face='verdana, helvetica, arial'><b>" .$pagina. "</b></font> de " .$total_paginas. "</b>";

$links .= "</form>";

}

?>

// fim do index.php da paginação

agora dentro de sua página onde você quer que a paginação aconteça coloque:

suapagina.php

require("paginacao/index.php");

$sql_insere = "SELECT * FROM suatabela WHERE seuid = ".$_REQUEST["id]."";

paginar("?acao=paginas&$pag=s&id=".$_REQUEST["id"]."",$_REQUEST["pagina"], $sql_insere);

..........

e no final de seu laço (fora dele, claro) você coloca:

<font size=1 face='Verdana, Helvetica, Arial'><b><?=$links;?></b></font>

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Deixei assim:

<script language="JavaScript">
function redirecionar()
{
    var selecaodroplist = document.form.opcao.value;
   window.location.replace("listar.php?pagina"+selecaodroplist);
}
</script>
echo "<form name=\"form\" action=\"?pagina=$i\" method=\"GET\">";
echo "<select name=\"opcao\">";
for($i = 1;$i < $paginas; $i++){
    echo "<option  value='{$i}'>$i</option>";
}
echo "</select><input type=\"submit\" value=\"muda\" onclick=\"redirecionar();\"></form>";

Infelizmente não deu certo.

Link para o comentário
Compartilhar em outros sites

  • 0
você tentou o exemplo que te mostrei?

ele era uma paginação dentro de um combox....

basta seguir corretamente como lhe passei...

abraços

Desculpa cara ainda num tentei é que fica foda fica mudando direto sabe até adaptar a minha situação, mas vou tentar sim vlw :rolleyes:

Renato mudei como você sugeriu e não deu certo

echo "</select><input type=\"button\" value=\"muda\" onclick=\"redirecionar();\"></form>";

Link para o comentário
Compartilhar em outros sites

  • 0

tdo bem... esqueci de avisar... no seu laço ... coloque (caso você esteja usando o while()) a variável $result. Ex:

....

$sql_insere = "SELECT * FROM suatabela WHERE seuid = ".$_REQUEST["id"]."";

paginar("?acao=paginas&$pag=s&id=.$_REQUEST["id]."",$_REQUEST["pagina"], $sql_insere);

while($m = mysql_fetch_object($result)){

..........

}

abraços

Link para o comentário
Compartilhar em outros sites

  • 0
tdo bem... esqueci de avisar... no seu laço ... coloque (caso você esteja usando o while()) a variável $result. Ex:

....

$sql_insere = "SELECT * FROM suatabela WHERE seuid = ".$_REQUEST["id"]."";

paginar("?acao=paginas&$pag=s&id=.$_REQUEST["id]."",$_REQUEST["pagina"], $sql_insere);

while($m = mysql_fetch_object($result)){

..........

}

abraços

beleza cara vlw aew pela ajuda pode dexa que vo tenta usa seu script, mas ainda vo tenta nesse daqui que to fazendo :wacko:

ai qualquer coisa sobre seu script eu posto aki !

Link para o comentário
Compartilhar em outros sites

  • 0
voce alterou

echo "<select name=\"opcao\">";

para

echo "<select name=\"pagina\">";

}}

Desculpa esqueci de responder isso :unsure:

mas alterei sim e não deu certo também.

Como que faz pra saber qual numero da droplist está selecionado?

Acho que é por isso que não funciona.

Link para o comentário
Compartilhar em outros sites

  • 0

Na barra de endereços depois que escolhe uma pagina e envia aparece como??

nomescript.php?pagina=X

tem uma coisa que vi agora

echo "<form name=\"form\" action=\"?pagina=$i\" method=\"GET\">";

voce força o envio e coloca nas opções

coloque apenas o nome do script ai e teste

echo "<form name=\"form\" action=\"nomescript.php\" method=\"GET\">";

Link para o comentário
Compartilhar em outros sites

  • 0
Na barra de endereços depois que escolhe uma pagina e envia aparece como??

nomescript.php?pagina=X

tem uma coisa que vi agora

echo "<form name=\"form\" action=\"?pagina=$i\" method=\"GET\">";

voce força o envio e coloca nas opções

coloque apenas o nome do script ai e teste

echo "<form name=\"form\" action=\"nomescript.php\" method=\"GET\">";

Aew bom dia, acho que chegamos ao fim da jornada :rolleyes: :rolleyes:

está funcionando beleza agora, quando seleciono a página na droplist vai beleza.

Mas so uma coisa no seu script "jissa" ele dexa a pagina inicial como pagina "0" e minha droplist começa com página "1" ai na verdade na droplist o numero "1" seria como a pagina "2" e não aparece a página "0" na droplist. Como que faria pra deixar a pagina "0" como sendo pagina "1"?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...