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

mostrar dados parcialmente


alexandre_prog

Pergunta

Pessoal, tem como eu mostrar os dados em HTML que são feitos nas estruturas de repetições ante de acabar a estrutura, por exemplo, estou fazendo um While aqui, mas ele só mostra os resultados depois que acaba essa condição do While, tem como eu já ir fazendo esse While e ir mostrando os dados na tela??

Obrigado!!

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Ao invés de dar um echo após o laço, insira ele dentro do laço.

Link para o comentário
Compartilhar em outros sites

  • 0

Negativo. Um echo dentro de um While irá imprimir cada ciclo do while. O que eu entendi:

Isto exibe um resultado somente no final do while:

$id = 0;
while($id<100)
  $id++;
echo $id;
Agora este irá imprimir cada passo do while, ajudando no debugger:
$id = 0;
while($id<100)
  echo $id++;
echo $id;

Quando eu faço uma estrutura html em um laço, digamos um <select>, se eu quero exibir cada linha <option> eu coloco na linha que estou montando um echo. Todavia, o <select> será montado normalmente.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, ira imprimir cada passo do while, mas não no tempo real e sim quando todo o ciclo tiver terminado, ao contrario do proposto do post que é mostrar os dados em cada iteração do while!

Usando o ajax voce deve fazer uma função que incremente o retorno do ajax em cada iteração e depois de incrementado ele imprima o dado.

Link para o comentário
Compartilhar em outros sites

  • 0

Agora sim entendi. Achei que era algo mais para debugger e não on-the-fly. Então a solução seria gerar um script php que ecoasse cada dado por vez e chamar estes dados por ajax, correto?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom o que eu pensei agora foi um POG mas quem sabe ajude:

Coloque o html em uma Session;

Coloque o ponteiro do array no início dele;

Ecoe no browser;

Caminhe um campo; e

Se é o final, unset no campo que possua o html.

Ficaria meio doido mas é o que eu pensei agora XD

Link para o comentário
Compartilhar em outros sites

  • 0

Chama um ajax pra isso:

<?php
    session_name("Teste");
    session_start();
    if(!isset($_SESSION['teste'])) {
        $_SESSION['teste'] = array();
        for($i=0;$i<10;$i++)
            $_SESSION['teste'][$i] = $i;
            $_SESSION['teste']['counter'] = 0;
    }
    $cont = $_SESSION['teste']['counter'];
    if(count($_SESSION['teste'])-1>$_SESSION['teste']['counter']) {
        echo "Posição: $cont - Valor: ".$_SESSION['teste'][$cont++];
        $_SESSION['teste']['counter'] = $cont;
    }
    else
        unset($_SESSION['teste']);
?>

Link para o comentário
Compartilhar em outros sites

  • 0

No meu caso fica complicado fazer assim, são muitos dados, e TAG de HTML junto com os echos do PHP no "meio" de cada While, então será que dá pra mostrar esses dados antes de terminar o ciclo do while?

exemplo:

while ($row = ibase_fetch_object($resultado)){
echo "<label id='ven".$a."' style='margin-bottom:3px;border-right:1px solid #666666; border-bottom:1px solid #666666; border-left:1px solid #666666; border-top:1px solid #666666; padding-left:4px;width:252.5mm;font-family:arial,sans-serif;font-size:10pt;display:block;overflow:hidden;background-color:#CCCCCC;'><b>Vendedor:</b> ".$row->VENDEDOR."</label>";
}

Eai? Tem como mostrar isso?

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe-me perguntar mas, qual a finalidade de mostrar a cada passo do ciclo do while?

Link para o comentário
Compartilhar em outros sites

  • 0

Retire o código que monta esse html para você do site e coloque em outro arquivo php com o nome de teste.php, que consiga trabalhar sozinho. No lugar, coloque isto:

<div id="teste"></div>
<script type="text/javascrtipt">
  ajax('GET','teste.php',null,'teste');
</script>
Na head do teu html que receberá o código acima, coloque:
<script language="text/javascript">
function ajax(tipo,url,query,local) {
    req = new XMLHttpRequest();
    req.open(tipo,url,true);
    req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    req.send(query);
    req.onreadystatechange = function() {
        if(req.readyState==4){
            if(req.status==200) 
                document.getElementById(local).innerHTML = req.responseText;
        }
        else
            document.getElementById(local).innerHTML = "Carregando...";
    }
    return true;
}
</script>

Eu que fiz este código porém ele somente funciona para Firefox e não no IE; todavia, estude AJAX.

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...