Abrir uma caixa de texto ao clicar no Href e salvar via $_POST. (php)

Para abrir uma caixa de texto e salvar seu conteúdo no $_POST quando um link (<a>) for clicado, você precisará usar JavaScript para manipular o evento de clique e capturar o valor inserido pelo usuário. Aqui está um exemplo de como você pode fazer isso:

<!DOCTYPE html>
<html>
<head>
  <title>Exemplo de caixa de texto</title>
  <script>
    function salvarTexto() {
      var texto = prompt("Digite seu texto:");
      if (texto !== null) {
        var form = document.createElement("form");
        form.method = "post";
        form.action = "seu_arquivo_php.php";
        
        var input = document.createElement("input");
        input.type = "hidden";
        input.name = "texto";
        input.value = texto;
        
        form.appendChild(input);
        document.body.appendChild(form);
        
        form.submit();
      }
    }
  </script>
</head>
<body>
  <a href="#" onclick="salvarTexto()">Clique aqui para salvar um texto</a>
</body>
</html>

Neste exemplo, quando o link é clicado, a função salvarTexto() é chamada. Ela exibe uma caixa de diálogo usando prompt() onde o usuário pode digitar o texto desejado. Se o usuário clicar em “OK” e digitar algum texto, um formulário é criado dinamicamente usando document.createElement(). Em seguida, um campo oculto (<input type="hidden">) é criado e atribuído ao valor do texto digitado.

O formulário é anexado ao corpo (<body>) do documento e é submetido automaticamente chamando o método submit(). Isso enviará o formulário para o arquivo PHP especificado no atributo action do formulário, usando o método HTTP POST. O texto digitado pelo usuário será acessível no arquivo PHP através do $_POST['texto'].

Você precisará substituir "seu_arquivo_php.php" pelo nome do seu arquivo PHP onde deseja processar o texto. Certifique-se de que o arquivo PHP exista e tenha a lógica adequada para lidar com os dados recebidos.

Se você deseja cancelar o evento do clique e obter o valor digitado pelo usuário na caixa de diálogo, e, retorná-lo para a página que contém o link, você pode fazer uso de uma função de retorno. Aqui está um exemplo atualizado:

<!DOCTYPE html>
<html>
<head>
  <title>Exemplo de caixa de texto</title>
  <script>
    function salvarTexto() {
      var texto = prompt("Digite seu texto:");
      if (texto !== null) {
        var form = document.createElement("form");
        form.method = "post";
        form.action = "seu_arquivo_php.php";
        
        var input = document.createElement("input");
        input.type = "hidden";
        input.name = "texto";
        input.value = texto;
        
        form.appendChild(input);
        document.body.appendChild(form);
        
        form.submit();
        
        return false; // Impede que o link seja seguido
      }
    }
  </script>
</head>
<body>
  <a href="#" onclick="return salvarTexto()">Clique aqui para salvar um texto</a>
</body>
</html>

Neste exemplo, além de criar o formulário dinamicamente e submetê-lo, adicionamos return false; ao final da função salvarTexto(). Isso impede que o link seja seguido, evitando a navegação para uma nova página. O retorno falso (false) indica ao navegador para cancelar o evento de clique padrão e permanecer na mesma página.

Dessa forma, você pode obter o valor digitado pelo usuário na caixa de diálogo, enviá-lo para o arquivo PHP especificado e continuar na página atual sem recarregar ou mudar de página.

se você remover o return false; da função salvarTexto(), o link será seguido após a inserção do texto. Isso significa que, após o usuário digitar o texto na caixa de diálogo e clicar em “OK”, o navegador irá seguir o link <a> e navegar para a URL especificada no atributo href do link.

A inclusão do return false; na função é necessária para impedir o comportamento padrão de seguir o link. Assim, você pode realizar a ação de envio do formulário e permanecer na mesma página, sem a necessidade de carregar uma nova página.

Se você remover o return false;, o link será seguido normalmente após a inserção do texto, a menos que você tenha especificado um href vazio (href="#") para o link, o que faria com que a página fosse recarregada, mas permanecesse na mesma posição. No entanto, o formulário não será enviado e o texto digitado não será enviado para o arquivo PHP.

Rolar para cima