Ir para conteúdo

Augusto A.S

Members
  • Total de itens

    18
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Augusto A.S

  1. Augusto A.S

    Forma de envio (GET - URL)

    Bom dia, gostaria de um esclarecimento na seguinte situação: digamos que eu pegue, no clique de um botão, o valor de seu data-id. Posteriormente, envio esse valor via AJAX, com o método GET, e pego ela no PHP. Isso seria mais ou menos assim: <script> var btn = document.getElementsByClassName('botao'); for (var i = 0; i < btn.length; i++) { btn[i].addEventListener('click', function (e) { var a = e.target.dataset.id; ajax_funcao('index.php?variavel=' + a); }, false); } function ajax_funcao(arquivo) { var http = new XMLHttpRequest; http.open('GET', arquivo, true); http.send(); } </script> <button type='button' class='botao' data-id='5'>Botao</button> Agora, para pegar o valor: <?php $valor_da_variavel = $_GET['variavel']; echo $valor_da_variavel; ?> Porém, qual seria a diferença disso para isso: <a href = index.php?variavel=5></a> E, para pegar o valor, a mesma coisa: <?php $valor_da_variavel = $_GET['variavel']; echo $valor_da_variavel; ?> Gostaria de saber qual a diferença e o que isso implica, pois precisei pegar um data-id e, fazendo dessa primeira forma não deu certo, porém, da segunda, deu certo. E também se eu usasse, no primeiro exemplo (do script), ao invés de: var http = new XMLHttpRequest; http.open('GET', arquivo, true); http.send(); Apenas: document.location=arquivo; Daria certo também. Boa tarde
  2. Augusto A.S

    Zoom em miniaturas

    Local correto
  3. Augusto A.S

    Pegar evento button

    Está dando o seguinte erro: script.php:60 Uncaught TypeError: Cannot read property 'addEventListener' of undefined
  4. Augusto A.S

    Pegar evento button

    E quanto ao nome_do_parametro, para acessa-lo via PHP, eu preciso colocar algo como: $valor_parametro = $_GET['nome_do_parametro']; ???
  5. Augusto A.S

    Pegar evento button

    Opa, obrigado amigo. Só uma coisa: eu poderia trocar o GetElementById() pelo GetElementByClassName()? Veja como ficaria: <script> var els = document.getElementsByClassName('btn-remove'); for(var i = 0; i < els.length; i++) { els[i].addEventListener('click', exclusao, false); } function exclusao(e) { var a = e.target.dataset.id; // Armazeno o valor do data-'id' do botão var http = new XMLHttpRequest; // Inicio o protocolo para executar ajax // Adciono um evento para a execução do ajax http.addEventListener('readystatechange', function () { // Verifico se o documento está pronto e carregado if ((http.readyState === 4) && (http.status === 200)) { } }, false); // Tipo de requisição para o arquivo // !!! IMPORTANTE NUNCA SE DEVE OMITIR O TERCEIRO PARARÂMETRO OU DEFINIR ELE COMO FALSE http.open('GET', 'pagina.php?id_comentario=' + a, true); http.send(); // envio da requisição para o servidor } </script> .
  6. Augusto A.S

    Pegar evento button

    Para resumir esse código gigante, acredito, como lhe disse, que o problema esteja em uma dessas partes: No script do $script: <script type='text/javascript'> function enviarMetodo(valor){ $.ajax({ url: 'comentario.php', data: {valor}, dataType: 'json', type: 'POST', beforeSend: function(){ }, success: function (data) { }, error: function(){ } }); }; </script> No <button></button> que envia o data-id: printf("<li>$nome_cmt disse: <button type='button' onclick='enviarMetodo($(this).attr('data-id'));' data-id='$id_coment'>Deletar</button> <br> $coment_cmt </li>"); No resultado desse button no HTML (veja que as aspas do onclick() ficam meio estranhas: <li>Augusto disse: <button type='button' onclick='enviarMetodo($(this).attr('data-id'));' data-id='55'>Deletar</button> <br> Comentário teste teste bla bla </li><br /> Na forma como estou tentando pegar o valor retornado do AJAX, que é: $valor_do_id = $_POST['valor']; Ou no chamamento da função: removerComentario( $valor_do_id ); Flw Brother, desculpe o textão ai!
  7. Augusto A.S

    Pegar evento button

    Qualquer dúvida no código eu lhe esclareço.
  8. Augusto A.S

    Pegar evento button

    Beleza brother, valeu! Bom, o código é meio grande, mas eu dei uma ajeitada para ficar mais fácil de entender. Os erros acredito que estejam no evento onclick(), na hora de pegar o valor do data-id do button, ou de retornar o valor do AJAX para o PHP, que é algo que não compreendi muito bem ainda. Mas, de qualquer forma, ai está o código amigo: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="comentario.css" > <title>Comentário</title> </head> <body> <div class="formulario"> <!-- Formulário --> <form method="post" name="comentario"> <label for="subject" id="title-coment">Escreva seu comentário aqui:</label> <textarea name="mensagem" rows=5 cols=50 wrap="hard" required="" resize="none" placeholder="Digite aqui..."></textarea> <input type="submit" value="Enviar"> </form> <!-- End formulário --> <!-- Comentários --> </div> <div class="container_2"> <ul> <!-- As linhas da <ul> são geradas via PHP: --> <?php include_once('conn.php'); //Arquivo de conexão com o Banco de Dados include_once ("login.php"); //Inclusão para pegar os cookies $nome e $email, durante uma seção $mensagem = $_POST['mensagem']; //Comando para identificar o convidado que comentou: $sql_convid = "SELECT idconvidado FROM convidado WHERE nome = '{$nome}'"; //execução do comando: $idop = $PDO->query($sql_convid); //armazenamento do resultado da busca: $idconvidado = $idop->fetch(); //Comando para inserir comentário no Banco de Dados: $sql_op2 = $PDO->prepare('INSERT INTO comentarios(comentario,idconvidado) value(:mensagem,:idconvidado)'); $sql_op2->bindValue(':mensagem', $mensagem); $sql_op2->bindValue(':idconvidado', $idconvidado["idconvidado"]); //Definir limite de comentários: $vf_comentarios = "SELECT idcomentario FROM comentarios"; // Se nenhuma mensagem foi enviada, if($mensagem == "" || $mensagem == null){ // E se o email do usuário logado for o do administrador (gu@gmail.com) if(@$email == "gu@gmail.com"){ // Definição do script (será mostrado no final do HTML!) $script = "<script type='text/javascript'> function enviarMetodo(valor){ $.ajax({ url: 'comentario.php', data: {valor}, dataType: 'json', type: 'POST', beforeSend: function(){ }, success: function (data) { }, error: function(){ } }); }; </script>"; //Comando para buscar o nome do usuário que comentou, o comentário em sí e o id desse comentário: $lista = $PDO->query("SELECT convidado.nome, comentarios.comentario, comentarios.idcomentario FROM convidado INNER JOIN comentarios ON convidado.idconvidado = comentarios.idconvidado ORDER BY idcomentario"); //Loop de exibição do $lista + um botão em cada linha (para o administrador deletar comentários indesejados) while ($rows = $lista->fetch()){ $nome_cmt = $rows['nome']; $coment_cmt = $rows['comentario']; $id_coment = $rows['idcomentario']; //Codificação da $linha no HTML (com o botão) printf("<li>$nome_cmt disse: <button type='button' onclick='enviarMetodo($(this).attr('data-id'));' data-id='$id_coment'>Deletar</button> <br> $coment_cmt </li>"); } //Variável que deveria pegar o valor do data-id do button, quando esse for enviado via AJAX pelo script definido anteriormente: $valor_do_id = $_POST['valor']; //No meu entendimento, aqui o $valor_do_id deve se tornar igual o valor enviado pelo AJAX //Definição da função de Exclusão de Comentários: function removerComentario( $id ) { //Se o $id não for nulo, ou seja, se algum botão for apertado if($id != null){ $select = $PDO->query("SELECT comentario FROM comentarios"); $deleta = $PDO->prepare("DELETE comentario FROM comentarios WHERE idcomentario = :idcomentario"); $deleta->bindValue(':idcomentario', $id); $deleta->execute(); //E se após a exclusão o numero de linhas não foi alterado: if($deleta->rowCount()==$select->rowCount()){ //Erro na exclusão echo "<script language='javascript' type='text/javascript'>alert('O comentário já foi excluído!');window.location.href='comentario.php';</script>"; return false; }else{ //Exclusão OK echo "<script language='javascript' type='text/javascript'>alert('Comentário excluido com sucesso!!');window.location.href='comentario.php';</script>"; return true; } }else{ //Nenhum botão pressionado return false; } } //Executa a função acima ( de exclusão de comentários): removerComentario( $valor_do_id ); //Encerramento de conexão: $PDO=null; }else{ // Se o usuário não for o administrador): //Comando para buscar apenas nome do usuário que comentou, e o comentário (Não há botão para deletar agora, logo não precisa do id do comentário): $lista = $PDO->query("SELECT convidado.nome, comentarios.comentario FROM convidado INNER JOIN comentarios ON convidado.idconvidado = comentarios.idconvidado ORDER BY idcomentario"); //Comando para definir o script, que será "nada": $script = ""; //Loop de exibição do $lista normal, sem botão: while ($rows = $lista->fetch()){ $nome_cmt = $rows['nome']; $coment_cmt = $rows['comentario']; //codificação dessa linha no HTML: printf("<li>$nome_cmt disse: <br> $coment_cmt </li>"); } } }else{ // Se a mensagem enviada não é nula: //Definição do número de comentários no Banco de Dados: $exec_vf = $PDO->query($vf_comentarios); $contador = $exec_vf->rowCount(); $limite = $contador; //Se houver menos do que 1000 comentários: if($limite<1000){ //E se o email do usuário logado for o do administrador (gu@gmail.com) if($email == "gu@gmail.com"){ //Comando para buscar o nome do usuário que comentou, o comentário em sí e o id desse comentário: $lista = $PDO->query("SELECT convidado.nome, comentarios.comentario, comentarios.idcomentario FROM convidado INNER JOIN comentarios ON convidado.idconvidado = comentarios.idconvidado ORDER BY idcomentario"); // Definição do script $script = "<script type='text/javascript'> function enviarMetodo(valor){ $.ajax({ url: 'comentario.php', data: {valor}, dataType: 'json', type: 'POST', beforeSend: function(){ }, success: function (data) { }, error: function(){ } }); }; </script>"; //Exibição do $lista + um botão em cada linha (para o administrador deletar comentários indesejados) while ($rows = $lista->fetch()){ $nome_cmt = $rows['nome']; $coment_cmt = $rows['comentario']; $id_coment = $rows['idcomentario']; //Codificação da $linha no HTML (com o botão) printf("<li>$nome_cmt disse: <button type='button' onclick='enviarMetodo($(this).attr('data-id'));' data-id='$id_coment'>Deletar</button> <br> $coment_cmt </li>"); } //Variável para pegar o valor do data-id do button, quando o valor for enviado via AJAX pelo script definido anteriormente. $valor_do_id = $_POST['valor']; //No meu entendimento, aqui o $valor_do_id deve se tornar igual o valor enviado pelo AJAX //Chamando a função de Exclusão de Comentários: removerComentario( $valor_do_id ); //Execução do comando de inserção de comentário no Bnaco de Dados (definido lá em cima) $sql_op2->execute(); //Mensagem de alerta "Comentário enviado com sucesso!" echo "<script language='javascript' type='text/javascript'>alert('Comentário enviado com sucesso!!!');window.location.href='comentario.php';</script>"; }else{ // Se o usuário não for o administrador): //Comando para buscar apenas nome do usuário que comentou, e o comentário (Sem botão para deletar): $lista = $PDO->query("SELECT convidado.nome, comentarios.comentario FROM convidado INNER JOIN comentarios ON convidado.idconvidado = comentarios.idconvidado ORDER BY idcomentario"); //Comando para definir o script, que será "nada": $script = ""; //Loop de exibição do $lista normal, sem botão: while ($rows = $lista->fetch()){ $nome_cmt = $rows['nome']; $coment_cmt = $rows['comentario']; //codificação dessa linha no HTML: printf("<li>$nome_cmt disse: <br> $coment_cmt </li>"); } //Execução do comando de inserção de comentário no Bnaco de Dados (definido lá em cima) $sql_op2->execute(); //Avisa que o comentário foi enviado com sucesso: echo "<script language='javascript' type='text/javascript'>alert('Comentário enviado com sucesso!!!');window.location.href='comentario.php';</script>"; //Encerra conexão: $PDO = null; } }else{ //Se já existem 1000 comentários no Banco de Dados: //Mensagem de limite de comentários: echo "<script language='javascript' type='text/javascript'>alert('Fim de comentários');window.location.href='index1.html';</script>"; } } ?> </ul> <!-- End comentários --> </div> </body> </html> <!-- Aqui em baixo onde o script é escrito para cada caso: --> <?php printf($script); ?> Esse é o resultado da página anterior vista no F12 do navegador. O erro diz estar na linha do button: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="comentario.css" > <title>Comentário</title> </head> <body> <div class="formulario"> <!-- Formulário --> <form method="post" name="comentario"> <label for="subject" id="title-coment">Escreva seu comentário aqui:</label> <textarea name="mensagem" rows=5 cols=50 wrap="hard" required="" resize="none" placeholder="Digite aqui..."></textarea> <input type="submit" value="Enviar"> </form> <!-- End formulário --> <!-- Comentários --> </div> <div class="container_2"> <ul> <!-- As linhas da <ul> são geradas via PHP: --> Nome: Augusto <br /> <b>Notice</b>: Undefined index: mensagem in <b>C:\xampp\htdocs\teste\script.php</b> on line <b>45</b><br /> <li>Augusto disse: <button type='button' onclick='enviarMetodo($(this).attr('data-id'));' data-id='55'>Deletar</button> <br> Bla bla bla </li><br /> <!-- O erro é nessa linha --> <b>Notice</b>: Undefined index: valor in <b>C:\xampp\htdocs\teste\script.php</b> on line <b>145</b><br /> </ul> <!-- End comentários --> </div> </body> </html> <!-- Aqui em baixo onde o script é escrito para cada caso: --> <script type='text/javascript'> function enviarMetodo(valor){ $.ajax({ url: 'comentario.php', data: {valor}, dataType: 'json', type: 'POST', beforeSend: function(){ }, success: function (data) { }, error: function(){ } }); }; </script> O erro é: Uncaught SyntaxError: Unexpected end of input Muito obrigado pela atenção brother!
  9. Augusto A.S

    Espaco branco entre as divs

    Tente fazer o seguinte: abra a página via localhost e dá um F12. Ai você dá um Ctrl + shift + C e clica em cima do bloco que está com essa borda, e observe o quadro na parte 'styles'. Veja se tem alguma propriedade que esteja com valor, como border, padding, etc.. e tente zerar eles. Pode ser alguma div dentro de outra...
  10. Augusto A.S

    Pegar evento button

    Amigo, deu o seguinte erro: <li>Augusto disse: <button onclick='enviarMetodo($(this).attr('data-id'));' data-id='55'>Deletar</button> <br> Comentario... </li>
  11. Augusto A.S

    Pegar evento button

    Obrigado amigo!!
  12. Augusto A.S

    Pegar evento button

    Poxa cara, vlw, mas ainda continua dando esse erro: $is not defined
  13. Augusto A.S

    Espaco branco entre as divs

    Amigo, sugiro que tente zerar o atributo <img> border no CSS, assim: img{ margin: 0px; border: 0px; padding: 0px; }
  14. Augusto A.S

    Pegar evento button

    Galera, estou penando em um clique de um `<button>`, peço a ajuda de vocês. Preciso que, assim que um `button` da classe `btn-remove` for clicado, o valor de seu `data-id` seja pego e enviado como parâmetro para uma função no PHP. Segue abaixo os códigos: Função PHP: function removerComentario( $id ) { $deleta = $PDO->prepare("DELETE comentario FROM comentarios WHERE idcomentario = :idcomentario"); $deleta->bindValue(':idcomentario', $id); $deleta->execute(); } $lista = $PDO->query("SELECT convidado.nome, comentarios.comentario, comentarios.idcomentario FROM convidado INNER JOIN comentarios ON convidado.idconvidado = comentarios.idconvidado ORDER BY idcomentario"); while ($rows = $lista->fetch()){ $nome_cmt = $rows['nome']; $coment_cmt = $rows['comentario']; $id_coment = $rows['idcomentario']; printf("<li>$nome_cmt disse: <button class='btn-remove' data-id='$id_coment'>Deletar</button> <br> $coment_cmt </li>"); } SCRIPT: <script> $('.btn-remove').click(function(){ var id = $(this).data('id'); $.ajax({ url: "comentario.php", data: { //aqui preciso que o valor do $id da função lá em cima seja igual à var id da segunda linha desse script. }, datatype: "json", type: "POST", success: function (data) { //aqui não entendi, para esse caso, o que devo colocar } }); }); </script> Basicamente o valor não está sendo pego, está dando erro no "$" do "$('btn_remove')", na parte do SCRIPT.
  15. Certifique-se que a linha de código da parte <?php fique colado na tag <textarea>, para que o texto gerado não fique no meio do campo.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.