Ajuda com desenvolvimento web

PHP

31/10/2015

Boa tarde..
bom vamos lá estou desenvolvendo um sistema para meu tcc na faculdade..
Programo em delphi.. mas a faculdade não aceitou o meu projeto em delphi.. então..
Bom gostaria de uma luz para saber quais ferramentas usar para que o meu arquivo php no momento que for clicado nos botões da tela
o arquivo não seja atualizado e assim não suma as minhas outras consultas feitas na pagina..
Poderiam me indicar quais ferramentas poderia fazer isso e de uma forma simples.. pois estou correndo contra o tempo..
Agradeço desde já..
Obrigado a todos..
Maycon Felippe

Maycon Felippe

Curtidas 0

Respostas

Marcio Araujo

Marcio Araujo

31/10/2015

Bom gostaria de uma luz para saber quais ferramentas usar para que o meu arquivo php no momento que for clicado nos botões da tela


Boa tarde, poderia explicar essa parte do que escreveu?
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Marcio..
Tenho uma pagina .php de pedidos
eu faço a consulta dos produtos que faltam mas no momento que eu adiciono esse produto ao pedido
a pagina ela atualiza e assim some o que eu tinha na pagina..
queria saber como fazer pra isso não acontecer ..

tipo .. eu clicar em adicionar e minha consulta continuar lá sem limpar a pagina..
a pagina faz um reload e volta zerada.. some tudo
deu pra entender.?
GOSTEI 0
Marcio Araujo

Marcio Araujo

31/10/2015

Já olhou no código para aonde está sendo "levado" a pagina depois que efetua a operação?
GOSTEI 0
Alex William

Alex William

31/10/2015

Tente usar AJAX nos botões, ele carrega dentro da DIV especifica e não recarrega a pagina toda a menos que você programe para fazer isso.

Pode usar, também, funções javascript para adicionar componentes via innerHTML.

Eu utilizo da seguinte forma:

Acrescento o plugin AJAX na pagina:
<script type="text/javascript" src="js/ajax.js"></script>


Depois disso, só chamar a pagina em PHP, no onClick do botão da seguinte forma:

ajax($pagina_ajax,$div_carregar);


No caso ficaria assim(o caminho tem que ser especificado caso a pagina não esteja na raiz):

ajax('modulos/consulta/excluir.php?id=<?= $dados_solicitacao['id'] ?>', 'exclui<?= $dados_solicitacao['id'] ?>')


A pagina é programada em PHP e só me retorna o que eu preciso(mudar um status, popular um campo, etc.).

Nesse caso acima, ele manda o id do produto que eu quero excluir, e carrega o retorno dentro da div com id='exclui+id_do_produto'.

Espero ter ajudado.
GOSTEI 0
Marcio Araujo

Marcio Araujo

31/10/2015

Sem o Ajax é possivel Alekym?
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Bom dia..
Alekym obrigado pela ajuda..
Nessa parte de js ou ajax
não sei nem o b,a,ba.. rs
Bom seria somente esse código para realizar essa função?
ou você resumiu para que eu possa entender?
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Opa consegui fazer..
Mas agora estou com outra dificuldade.. rs

Eu realizo uma query de consulta para ver os produtos em baixa..
Quando exibo faço isso com uma table html
com isso coloquei esse button para adicionar o produto..
Só que no momento que clico no primeiro button da table html
Ele executa mas os outros button não realizam a função.. ='(
GOSTEI 0
Alex William

Alex William

31/10/2015

Sem o Ajax é possivel Alekym?


Olha acho que sim, mas possivelmente seria mais complicado. Mas Desconheço outra forma, já que geralmente uso AJAX para isso.

Só que no momento que clico no primeiro button da table html
Ele executa mas os outros button não realizam a função.. ='(


Tenta ver se na pesquisa não vem nos nomes ou em alguma string que possua aspas simples ou duplas. o código pode estar interpretando que essa aspa fecha a string e dá erro.

Caso seja isso, coloque o comando addslashes() pra que ele entenda que aspas são parte da string e não o fim dela.

[url:descricao=Função addslashes]http://php.net/manual/pt_BR/function.addslashes.php[/url]


Se não for isso, poderia por gentileza postar o código para que eu possa ver como você fez?
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Então amigo.. agora estou com uma outra dificuldade ..
vou por o codigo pra ver se consigo explicar melho..



 
// Essa é minha class
 while ($linha = pg_fetch_array($query))
           //     foreach ($linha[cod_prod] as $resul ) {

                    echo '<tr class="consulta1">
                                 <input type="text" name="tCod_prod2" value="' .$linha[cod_prod] . '" readonly >
                             <td><p class="codProduto"> ' . $linha[cod_prod] . '</p></td>
                             <td><p class="nomeProduto">' . $linha[nome_prod] . '</p></td>
                             <td><p class="precoProduto">' . $linha[preco_prod] . '</p></td>
                             <td><p class="Marca">' . $linha[marca_prod] . '</p></td>
                             <td><p class="quantProduto">' . $linha[quant_prod] . '</p></td>
                             <td><p class="descProd">' . $linha[descricao_prod] . '</p></td>
                             <td><p class="descTipo">' . $linha[descricao_tipo] . '</p></td>
                             <td><button class="Adicionar" type="button" id="butAdd" onclick="return(this.form)" >Adicionar</button></td>
                      </tr>';
                }
            echo '</table>';

// e aqui o js


$(document).ready(function() {
     $("#butAdd").click(function() {

         var tCod_prod2  = $("input[name=tCod_prod2]").val();
 
        //usar o metodo ajax da biblioteca jquery para postar os dados em processar.php
        $.ajax({
            "url": "processar.php",
            "dataType": "html",
            "data": {
                tCod_prod2 : tCod_prod2
             },
            "success": function(response) {

                //em caso de sucesso, a div ID=saida recebe o response do post
                $("div#saida").html(response);
            }

        });
    });
})




// Aqui onde executo o php mas esta só para que eu possa ver se esta passando os codigos certos
$tCod_prod2  = $_REQUEST['tCod_prod2'];

echo "Seu id é <strong>$tCod_prod2</strong>";

 
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Esqueci de falar..

o botão só funciona 1 vez e somente lá no primeiro button
os outros não respondem..

porque acontece isso de funcionar só o primeiro e somente uma vez..?
GOSTEI 0
Alex William

Alex William

31/10/2015


 
// Essa é minha class
 while ($linha = pg_fetch_array($query))
           //     foreach ($linha[cod_prod] as $resul ) {

                    echo '<tr class="consulta1">
                                 <input type="text" name="tCod_prod2" value="' .$linha[cod_prod] . '" readonly >
                             <td><p class="codProduto"> ' . $linha[cod_prod] . '</p></td>
                             <td><p class="nomeProduto">' . $linha[nome_prod] . '</p></td>
                             <td><p class="precoProduto">' . $linha[preco_prod] . '</p></td>
                             <td><p class="Marca">' . $linha[marca_prod] . '</p></td>
                             <td><p class="quantProduto">' . $linha[quant_prod] . '</p></td>
                             <td><p class="descProd">' . $linha[descricao_prod] . '</p></td>
                             <td><p class="descTipo">' . $linha[descricao_tipo] . '</p></td>
                             <td><button class="Adicionar" type="button" id="butAdd" onclick="return(this.form)" >Adicionar</button></td>
                      </tr>';
                }
            echo '</table>';

 


Tenta assim:

 
// Essa é minha class
 while ($linha = pg_fetch_array($query))
           //     foreach ($linha[cod_prod] as $resul ) {

                    echo '<tr class="consulta1">
                                 <input type="text" name="tCod_prod2" value="' .$linha[cod_prod] . '" readonly >
                             <td><p class="codProduto"> ' . $linha[cod_prod] . '</p></td>
                             <td><p class="nomeProduto">' . addslashes($linha[nome_prod]) . '</p></td>
                             <td><p class="precoProduto">' . $linha[preco_prod] . '</p></td>
                             <td><p class="Marca">' . $linha[marca_prod] . '</p></td>
                             <td><p class="quantProduto">' . $linha[quant_prod] . '</p></td>
                             <td><p class="descProd">' . addslashes($linha[descricao_prod]) . '</p></td>
                             <td><p class="descTipo">' . addslashes($linha[descricao_tipo]) . '</p></td>
                             <td><button class="Adicionar" type="button" id="butAdd" onclick="return(this.form)" >Adicionar</button></td>
                      </tr>';
                }
            echo '</table>';

 


Por que como eu te disse, pode ser uma aspas simples que fecha a string da função, ou então um acento também.
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Nada .. Continuar executando só o primeiro buton, ele exibe o cod no clique do button mas
ele só executa no primeiro os outros que o while cria junto com a tabela não funcionam..
GOSTEI 0
Marcio Araujo

Marcio Araujo

31/10/2015

Obrigado Alekym?
GOSTEI 0
Alex William

Alex William

31/10/2015

Agora notei uma coisa, no seu while ta faltando uma "{" no começo.
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Na verdade nem estava aberto no while..
Mas o button esta do mesmo jeito.. Só executando o primeiro mesmo..
Será que não seria alguma coisa no js mesmo?
GOSTEI 0
Alex William

Alex William

31/10/2015

Você usa qual navegador pra visualizar seu projeto?

Se você usa o Chrome, abre o WebDeveloper tool e vê no console se ele da algum retorno sobre a função JS, ja que seu PHP parece normal.

Se voce usa o Firefox, abre o FireBug e vê no console se ele retorna algum erro.
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Ele não retorna erro..
='(

Será que se eu colocar para o button receber o cod_prod2 eu conseguiria ler dele mesmo ao clicar?
GOSTEI 0
Alex William

Alex William

31/10/2015

Cara, como não vi isso antes, quando ele executa a 1ª vez, adiciona um botão com o mesmo id, tu não pode ter dois elementos com o mesmo id no formulário, dá conflito.

Assim, coloca o botão da seguinte forma:

<button class="Adicionar" type="button" id="butAdd" onclick="return(this.form); adicionar();" >Adicionar</button>


E a tua função JS deixa assim:

     function adicionar() {
 
         var tCod_prod2  = $("input[name=tCod_prod2]").val();
  
        //usar o metodo ajax da biblioteca jquery para postar os dados em processar.php
        $.ajax({
            "url": "processar.php",
            "dataType": "html",
            "data": {
                tCod_prod2 : tCod_prod2
             },
            "success": function(response) {
 
                //em caso de sucesso, a div ID=saida recebe o response do post
                $("div#saida").html(response);
            }
 
        });
    };


Vê se assim funciona.
GOSTEI 0
Maycon Felippe

Maycon Felippe

31/10/2015

Opa Alekym..
Desculpe a demora mais tive uma urgência
Meu amigo.. Me parece que assim ele nem esta executando a função..
Não retorna nada..
Será que falta algum detalhe ?
GOSTEI 0
Alex William

Alex William

31/10/2015

Assim cara, é alguma coisa por causa do ID do botão, eu elaborei meio na corrida a função e não tive tempo de executar.

Arranje um jeito de que cada vez que ele executar a função, o ID do botão mude e aplique a função no mesmo.

eu vou verificar com mais calma e caso voce não consiga eu posto aqui.
GOSTEI 0
POSTAR