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 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
       
       
    • By kaioneresm
      Olá, tenho um formulario que pede um nome de usuário.
      Preciso que ao tentar digitar o espaço do teclado ele não funcione. Ou seja o input text bloquea no mesmo momento que for digiado.
       
      Alguem pode me ajudar? Obrigado !!
    • By mamotinho
      Boa noite! estou com dúvidas em relação a array, eu tenho uma procedure no SQL Server e essa procedure exibe uma lista de resultados, eu gostaria de pega o valor desses resultados e lista em um array para eu comparar com outro valor que vai ser selecionado em um select , tipo abaixo:
       
      $arraySelect = $db->prepare(exec WebSite.dbo.server_value_product 2);
      $arraySelect->execute();
      $arrayExemple = $arraySelect->fetchAll();

      procedure_list = array($arrayExemple);
       
      !in_array($valorSelect, $procedure_list){
         echo 'O Valor selecionado não existe nos resultados da procedure';
      }
       
       
      alguem sabe como posso listar o resultado da procedure em array. e sabe se o valor que procuro está entre os resultados da array.
×

Important Information

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