Form data is not being registered

0

I have a form written in php with connection to a bank administered by phpMyAdmin.

WHAT SHOULD HAPPEN:

The data entered in the form should be registered with a alert "saved successfully" and returning to the previous page.

WHAT'S HAPPENING: When you try to register, you even redirect to the page responsible for registering and displaying alert , but the page is blank, alert does not appear, does not return to the previous page and does not register information in the database.

FORM:

<div class="container">
        <div class="row">
            <div class="col-lg-12 text-center">
                <h1 style="
                    margin-top:100px;">Cadastro de Formações</h1>
                <p> </p>
                <p class="lead"></p>
                <ul class="list-unstyled">
                    <form id="cadastro" name="cadastro" method="post" action="banco/updateF.php" style="
                        text-align: left;
                        margin-top:50px;">
                        <div class="col-lg-12">
                            <div class="form-group" style="
                        text-align: left;">
                                <label  for="NOME">Nome: </label>
                                <input  type="text" required class="form-control" id="NOME" name="NOME" placeholder="Nome da formação">
                             </div>
                        </div>

                        <div class="col-lg-12">
                            <div class="form-group" method="post" style="
                        text-align: left;">
                                <label  for="CARGA">Carga Horária: </label>
                                <input  type="text" required class="form-control" id="CARGA" name="CARGA" placeholder="Carga horária da formação">
                             </div>
                        </div>
                        <div class="col-lg-12">
                            <div class="form-group" method="post" style="
                        text-align: left;">
                                <label  for="OBJETIVO">Objetivo: </label>
                                <input  type="text" required class="form-control" id="OBJETIVO" name="OBJETIVO" placeholder="Objetivo da formação">
                             </div>
                             <div class="form-group" method="post" style="
                        text-align: left;">
                                <label for="CONTEUDO">Conteúdo da programático: </label>
                                <textarea class="form-control" id="CONTEUDO" rows="3" name="CONTEUDO" placeholder="Conteúdo programático da formação"></textarea>
                             </div>
                             <div class="">
                                <button type="submit" class="btn btn-primary btn-lg btn-block">Salvar</button>
                            </div>
                            <div class="alert alert-info" role="alert">
                                <strong>Hey! </strong> Antes de realizar o cadastro, certifique-se de que não se esqueceu de nada! :)
                            </div>
                        </div>
                     </form>
                </ul>
            </div>
        </div> 
    </div>

THE CONNECTION:

<?php
    mysql_connect("localhost","root","") or die ("erro na conexao com o banco de dados!");
    mysql_select_db("db_formacao");
?>

UPDATE:

    <!-- Envia dados do formulario de edicao pro banco de dados -->

<!--TESTE DE BANCO -->

<?php 
require ("conecta.php");
//coletando dados do formulario

    $nome           =   $_POST["NOME"];
    $carga          =   $_POST["CARGA"];
    $objetivo       =   $_POST["OBJETIVO"];
    $conteudo       =   $_POST["CONTEUDO"];

// Inserir dados no banco
    $itens = $_POST['NOME'];

    if (!empty($itens)){
        $itens = implode(',', $_POST['NOME']);
    }
$up = "UPDATE turmas SET NOME = '$nome', CARGA = '$carga', OBJETIVO = '$objetivo', CONTEUDO = '$conteudo'";
echo $up;

$up= mysql_query($up) or die(mysql_error());

?>
<?php
    if (mysql_affected_rows() > 0) { 
        echo '<script type="text/javascript">
            alert("Salvo com Sucesso !");
            window.history.go(-1);
        </script>';    
    } else {    
        echo '<script type="text/javascript">
            alert("Salvo sem Modificações !");
            window.history.go(-1);
        </script>';
    }
?>

When I try to display the source code of this blank page through the browser, only the comments on the update page appear.

I'm not very experienced, but from what I've studied, it does not seem wrong at all. If you can tell me the mistakes, I'd appreciate it. :)

    
asked by anonymous 04.08.2017 / 14:37

3 answers

0

Nothing was wrong with the form, the error was in the update file. I reformulated and resolved this:

<!--ENVIA OS DADOS DO FORMULÁRIO PARA O BANCO-->

<?php

    $nome = $_POST['NOME'];
    $carga = $_POST['CARGA'];
    $objetivo = $_POST['OBJETIVO'];
    $conteudo = $_POST['CONTEUDO'];

    $strcon = mysqli_connect('localhost','root','', 'db_formacao') or die('Erro ao conectar ao banco de dados');
    $sql = "INSERT INTO formacoes VALUES ('$id', '$nome', '$carga', '$objetivo', '$conteudo')"; 
    mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");
    mysqli_close($strcon);

    echo "Formação cadastrada com sucesso!";
?>

I thank everyone who helped me.

    
10.08.2017 / 13:28
2

I may be wrong, but from what I saw in the data entry form, you do not have the entry for the ID, and in the PHP code both in the data recovery and in the update query you use an id that does not exist. Did you understand what I meant? Look at the code again and look at the form that does not have a field to insert the id, and in your php code it looks like this:

   $id             =   $_POST["ID"]; //essa linha aqui não está recuperando nada
   $nome           =   $_POST["NOME"];
   $objetivo       =   $_POST["OBJETIVO"];
   $conteudo       =   $_POST["CONTEUDO"];
   $carga          =   $_POST["CARGA"];

Soon after we have:

    $up = "UPDATE formacoes SET NOME = '$nome', OBJETIVO = '$objetivo', CONTEUDO = '$conteudo', CARGA = '$carga'  WHERE id = '$id'";
//nessa linha você está usando um id inexistente

Maybe that's why the update is not being performed. Check it out and give us feedback!

    
04.08.2017 / 16:05
1

Mariana, if you are sending javascript to the client's browser it is necessary to send the correct header, in case before your echo do this:

header('Content-Type: application/javascript');
if (mysql_affected_rows() > 0) { 
    echo '<script type="text/javascript">
        alert("Salvo com Sucesso !");
        window.history.go(-1);
    </script>';    
} else {    
    echo '<script type="text/javascript">
        alert("Salvo sem Modificações !");
        window.history.go(-1);
    </script>';
}    

In the case above I am sending to the browser and advising that the php return code is a javascript, so that it interprets the routine.

Update

  <?php 
       require ("conecta.php");
       //coletando dados do formulario
       $id             =   $_POST["ID"]; 
       $nome           =   $_POST["NOME"];
       $objetivo       =   $_POST["OBJETIVO"];
       $conteudo       =   $_POST["CONTEUDO"];
       $carga          =   $_POST["CARGA"];

       // Inserir dados no banco
       $itens = $_POST['NOME'];

       if (!empty($itens)){
           $itens = implode(',', $_POST['NOME']);
       }
       $up = "UPDATE formacoes SET NOME = '".$nome."', OBJETIVO = '".$objetivo."', 
       CONTEUDO = '".$conteudo."', CARGA = '".$carga."'  WHERE id =".$id;
       $up= mysql_query($up) or die(mysql_error());

       echo "Número de linhas afetadas:".mysql_affected_rows()."<br/>";
       if (mysql_affected_rows() > 0) { 
            $resposta = 'Update concluído com sucesso!';    
       } else{    
           $resposta = 'Cadastro não sofreu alterações!';   
       }
       mysql_close($conexao);
       die($resposta);
   ?>

Run with this script and tell me what you gave?

    
04.08.2017 / 15:17