Datas sendo salvas no banco de dados com o valor zerado... PHP + MYSQL

26/11/2020

0

É o seguinte, eu estou tentando fazer um formulário de agendamento de datas. Aonde de um lado vc vai ter um PROFESSOR que irá disponibilizar datas disponíveis, e do outro lado, um segundo usuário ALUNO que irá escolher dentro de um <select><option>, as datas fornecidas pelo primeiro usuário.

Pois bem, acontece que quando eu escolho uma das datas que vem do lado do professor, elas vem normalmente como na imagem

https://uploaddeimagens.com.br/imagens/g7Ly-CE

O campo de Datas disponíveis vem dinamicamente do que eu colocar do lado do professor, que usa uma tabela events.
No caso do aluno, segue o código fonte +/- resumido :

<form id="addevent-form" method="POST" role="form">
                                    <div>
                                            <!--Nome Completo-->
                                            <input type="name" name="name" id="name" class="form-control" placeholder="Nome Completo">
                                        </div> <br>
                                        <div>
                                            <!--Telefone para contato-->
                                            <input type="text" name="telephone" id="telephone" class="form-control" placeholder="Telefone Contato">
                                        </div><br>
                                        <div>
                                            <!--Div de datas disponíveis-->
 
                                            <div class="form-group row">
                                                <?php
                                                try {
 
                                                    $statement = $pdo->prepare("SELECT DATE_FORMAT(`start`,'%d/%m/%Y -- %H-%i') start FROM events");
 
                                                    //echo $result   "SELECT start FROM events"   
                                                    $statement->execute();
                                                    $row = $statement->fetchAll(PDO::FETCH_ASSOC);
                                                } catch (PDOException $e) {
                                                    echo "Oops there was an error<br><br>" . $e->getMessage();
                                                }
 
                                                ?>
 
                                                <div class="col-md-9">
                                                    <select name="datas" id="datas" class="form-control">
                                                        <option value="" name="a" id="a" >Datas disponíveis</option>
                                                        <?php foreach ($row as $rows) { ?>
                                                            <option name="option" id="option"><?php echo htmlspecialchars($rows["start"]);
                                                                                                            } ?> </option>
                                                    </select>
                                                </div><br>
 
                                                <input type="submit" name="addevent-submit" id="addevent-submit" class="btn btn-warning btn-md" value="Agendar"></button>
 
                                            </div><br>
                                        </div>
                                    </form> 



E eu tenho uma tabela para guardar informações de dia e hora que serão inseridas pelo professor que é a `events` e outra tabela para pegar os dados do aluno.

Ok, eu preencho meu nome, telefone e escolho dentro do select alguma data disponivel, e envio... funciona, só que as datas não estão sendo salvas.

Por exemplo na imagem :

https://uploaddeimagens.com.br/imagens/0uRzui0

No caso não importa a data que eu selecione, sempre fica com o valor zerado.

Como eu poderia salvar as datas da mesma forma que elas vêm do formulário, no banco de dados ?
Weslley Felix

Weslley Felix

Responder

Post mais votado

30/11/2020

Olá amigo, tudo bem?

Vamos começar pela sua tag "form", deixe ela assim:
<form id="addevent-form" method="POST" role="form" enctype="multipart/form-data">


Segundo, duas coisas que eu notei no seu select:
1º- Os options não precisam de nome e id, pois o valor é pego pelo POST do select e não do option selecionado.
2º - Seus options que são populados no select não tem "value", logo se eles não tem "value" eles passam vazio para o POST.

Ajuste esses pontos, e poste se funcionou.

Espero ter ajudado. :D




Olá Alex, obrigado pela resposta !

fiz as correções sugeridas

<form id="addevent-form" method="POST" role="form" enctype="multipart/form-data">


e nos options

<select name="datas" id="datas" class="form-control">
                                                        <option>Datas disponíveis</option>
                                                        <?php foreach ($row as $rows) { ?>
                                                            <option><?php echo htmlspecialchars($rows["start"]);
                                                                                                            } ?> </option>
                                                    </select>



mas continua com o mesmo problema... será que o problema está nos formatos das datas ?




Eu achei o problema de fato ! É que só dá pra salvar no banco de dados com o formato nativo ! Se eu usar o DATE_FORMAT(`start`,''%d/%m/%Y -- %H-%i'')
no select, e eu tentar salvar no banco de dados vindo assim pro meu formulário ele não salva... se eu remover, ele salva, mas com a data e hora no formato nativo do banco...

Weslley Felix

Weslley Felix
Responder

Mais Posts

27/11/2020

Alex William

Olá amigo, tudo bem?

Vamos começar pela sua tag "form", deixe ela assim:
<form id="addevent-form" method="POST" role="form" enctype="multipart/form-data">


Segundo, duas coisas que eu notei no seu select:
1º- Os options não precisam de nome e id, pois o valor é pego pelo POST do select e não do option selecionado.
2º - Seus options que são populados no select não tem "value", logo se eles não tem "value" eles passam vazio para o POST.

Ajuste esses pontos, e poste se funcionou.

Espero ter ajudado. :D
Responder

30/11/2020

Weslley Felix

Olá amigo, tudo bem?

Vamos começar pela sua tag "form", deixe ela assim:
<form id="addevent-form" method="POST" role="form" enctype="multipart/form-data">


Segundo, duas coisas que eu notei no seu select:
1º- Os options não precisam de nome e id, pois o valor é pego pelo POST do select e não do option selecionado.
2º - Seus options que são populados no select não tem "value", logo se eles não tem "value" eles passam vazio para o POST.

Ajuste esses pontos, e poste se funcionou.

Espero ter ajudado. :D




Olá Alex, obrigado pela resposta !

fiz as correções sugeridas

<form id="addevent-form" method="POST" role="form" enctype="multipart/form-data">


e nos options

<select name="datas" id="datas" class="form-control">
                                                        <option>Datas disponíveis</option>
                                                        <?php foreach ($row as $rows) { ?>
                                                            <option><?php echo htmlspecialchars($rows["start"]);
                                                                                                            } ?> </option>
                                                    </select>



mas continua com o mesmo problema... será que o problema está nos formatos das datas ?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar