Jump to content
AndersonVSilva

Como chamar procedure via PHP recebendo parametros de formulário html

Recommended Posts

Bom dia Pessoal,

 

Efetuei uma busca no forum e não encontrei alguma solução para meu problema.

 

Tenho este form via HTML:
 

        <td><form id="form1" action="CallProc02.php" method="post"><input type="hidden" name="id" value="1" /></form></td>
        <td><input form="form1" type="text" name="DDDA" value="Ex: 75" /></td>
        <td><input form="form1" type="text" name="NumA" value="Ex: 982825441" /></td>
        <td><input form="form1" type="text" name="DtInit" value="Ex: 2018-01-01" /></td>
        <td><input form="form1" type="text" name="DtEnd" value="Ex: 2019-01-01" /></td>
        <td><input form="form1" type="submit" value="Enviar" /></td>

E aqui está o código PHP:

<?php
$sDDDA = $_POST['DDDA'];
$sNumA = $_POST['NumA'];
$sDtInit = $_POST['DtInit'];
$sDtEnd = $_POST['DtEnd'];
$con = new PDO("mysql:host:IP;dbname=DB", "User", "Pass");
$stmt = $con->prepare("CALL NOC_cobranca_conecta_historico_msisdn(:qDDDA, :qNumA, :qDtInit, :qDtEnd) ");
$stmt->bindParam(":qDDDA", $sDDDA, PDO::PARAM_STR, 3);
$stmt->bindParam(":qNumA", $sNumA, PDO::PARAM_STR, 10);
$stmt->bindParam(":qDtInit", $sDtInit, PDO::PARAM_STR, 12);
$stmt->bindParam(":qDtEnd", $sDtEnd, PDO::PARAM_STR, 12);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($result) {
    echo "OK";
} else {
    echo "NOK - Report Development Team";
}
?>

No Apache ele fica logando o erro ' PHP Notice:  Undefined index: NumA in /var/www/html/Consulta/CallProc02.php' .

 

Alguém pode me dizer oque estou fazendo errado?

 

Obrigado desde já pela ajuda.

Share this post


Link to post
Share on other sites

Pessoal

 

Achei a falha e não estava no PHP e sim no HTML removi a tag:

<input type="hidden" name="id" value="1" />

Porém mesmo a procedure executando com sucesso ele sempre retorna o ELSE:

echo "NOK - Report Development Team";

Alguém sabe me dizer oque estou fazendo de errado? até criei um outro .php que executa essa call da procedure e sempre retorna o ELSE em vez do OK, sabem como posso fazer para que ele retorne um OK para o usuário indicando que a procedure foi executada com sucesso ?

Share this post


Link to post
Share on other sites

O seu HTML está fechando a tag </form> antes de todos os inputs.

 

coloque a tag <form> fora das tags de <table> por exemplo:

<form action="postar.php" method="post">
  <table>
    <tr>
      <td>
        <input type="text" name="meuinput">
      </td>
    </tr>
    <tr>
      <td>
        <button type="submit">Enviar</button>
      </td>
    </tr>
  </table>
</form>

Para que os campos sejam passados em POST ao script dados em ACTION é preciso que todos estejam dentro da tag <form>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By unset
      Olá, estou com uma falha de lógica pegando aqui se alguém puder ajudar
       
      Eu tenho um formulário tranquilo, como abaixo
      <label for="cidades" class="form-label">Cidades</label> <select class="form-select mb-3" name="cidades[]" id="cidades" multiple="multiple"> <option value="1">Cidade 1</option> <option value="2">Cidade 2</option> <option value="3">Cidade 3</option> <option value="4">Cidade 4</option> <option value="5">Cidade 5</option> </select>  
      Blz eu recebe os dados do formulário ou seja os ids da cidade certinho em um array 
       
      array(3) { [0]=> string(1) "2" [1]=> string(2) "3" [1]=> string(1) "5" }
      <?php $dados = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED); var_dump($dados); ?> Agora como inserir todos os ids no banco? utilizando um for? um while? algum exemplo?
       
      Pergunto pq ao tentar inserir no banco somente um registro é inserido e não todos do select
       
    • By mateus.andriollo
      Qual seria a forma correta de projetar uma aplicação multi formulários. Estou fazendo ela em Jquery com Load() mas algumas ações não são executadas em script.
      Me pergunto seria o correto?
       
      Exemplo: pensando um cadastro de clientes/empresas
      - clientes.php (formulário de cadastro/edição/anexos)
      - empresas.php (formulários de cadastro de empresa/ funcionários/ setores)
      - relatorios.php (clientes e empresas)
       
      Cada página dessa eu chamo, ela vem sempre com o seu conteúdo...
      Pensei no seguinte, todos estea formulários carregados e eu apenas usar função Get() para preencher campos e gerar os relatórios.
       
      Fica a dúvida, pois hj essas páginas extras são HTML com form e ações PHP
       
       
       
       
       
    • By Kellison Ruan
      Acho que não fui tão claro no título, portanto irei esmiuçar melhor aqui...
       
      É o seguinte, quero saber se há algum jeito de pegar as linhas de uma coluna q está em VARCHAR com informações do tipo "4 PONTOS DE ILUMINAÇÃO", dessa informação pretendo retirar somente o número que em questão é o "4" e colocá-lo em outra coluna INTEGER. Há essa possibilidade? Detalhe, as vezes as informações não está seguindo um padrão de vim somente como "4 PONTOS DE ILUMINAÇÃO" às vezes vêm dados com mais informações númericas que precisa distinguir, por exemplo, a mim só interessa pegar números que vem antecedendo as palavras "PONTOS", "PTOS", "PTS", têm algum jeito de distinguir isso?
    • By rafaelti
      Pessoal, tudo bem?
       
      Estou desenvolvendo um pequeno serviço gratuito para integrar formulários HTML com o Microsoft Teams. Gostaria de saber se esta ferramenta é útil para vocês, e também se teriam alguma sugestão de melhoria?
      Pretendo adicionar outros serviços futuramente, como Slack e Facebook Messenger.
       
      Segue o link:
      https://dockform.net
       
      Att,
      Rafael
    • By TeixeiraRamos
      Saúde e paz para todos,
      Prezados não sei o que vem ocorrendo com a minha procedure;
       
      No phpMyAdmin, em Editar rotina, detalhes consta:
       
       
      Em "Adicionar parâmetro"
       
       
       
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tbpdodia(data_inicio, diassemanas)VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END; DELIMITER; Call adicionar_data('2020-11-29', 398);  
      Gostaria que a coluna "data_inicial" fosse preenchida com as datas de 2020-11-29 a 2021-12-31
      O resultado mostra erros.
       
      Obrigado, saude
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.