Boa tarde a todos.
Agradeceria de uma idéia para resolver meu problema:
Meus campos datainicio e datatermino estão sendo enviados ao BD utilizando esta preg_replace:
public function getDatainicio()
{
return $this->datainicio;
}
public function setDatainicio($datainicio)
{
$datainicio= preg_replace("/\D+/", "", $datainicio);
$this->datainicio = $datainicio;
}
public function getDatatermino()
{
return $this->datatermino;
}
public function setDatatermino($datatermino)
{
$datatermino= preg_replace("/\D+/", "", $datatermino);
$this->datatermino = $datatermino;
}
Estou conseguindo inserir sem prolemas. Mas quando eu preciso criar o formulário de alteração eu estou retornando os dados do BD recebo desta forma:
["datainicio"]=> string(8) "20180921" ["datatermino"]=> string(8) "20180923"
Preciso converter para o padrão brasileiro e exibir no html e depois converter novamente se o usuário quiser alterar a data e enviar ao BD novamente com a data que ele aceita.
Já tentei alterar diretamente no HTML utilizando javascript mas não consegui resultado acho que é porque ele teria que receber no formato do BD 2018-09-21 e não 20180921.
Porque isto está acontecendo e qual o melhor método para resolver?
Este é meu html
<?php ini_set('display_errors', 1);?>
<?php error_reporting(E_ALL);?>
<?php require_once 'conecta.php' ?>
<?php require_once 'cabecalho.php' ?>
<?php require_once 'banco-curso.php' ?>
<?php require_once 'banco-fornecedor.php' ?>
<?php require_once 'curso.php' ?>
<?php require_once 'fornecedor.php' ?>
<?php
$curso = new Curso();
$curso->setFornecedor(new Fornecedor());
if (array_key_exists('id', $_GET)) {
$id = $_GET['id'];
$curso = buscaCurso($conexao, $id);
}
?>
<?php $fornecedores = listaFornecedores($conexao); ?>
<?php
$ehAlteracao = false;
$action = "adiciona-curso.php";
if (array_key_exists("id", $_GET)) {
$id = $_GET['id'];
$curso = buscaCurso($conexao, $id);
$ehAlteracao = true;
$action = "altera-curso.php";
}
?>
<div class="container">
<center><h1 class="h3 mb-3 font-weight-normal"> <?=$ehAlteracao ? "Alterar" : "Cadastrar " ?>
o Curso</h1><form action="<?=$action ?>" method="post" ></center>
<div class="form-group">
<input type="hidden" name="id" value="<?=$curso->getId() ?>" />
<div class="form-group col-md-12">
<label for="inputEmail4">Nome do Curso</label>
<input type="text" class="form-control" id="nome" name="nome" placeholder="nome do curso" required
value="<?=$curso->getNome() ?>">
</div>
<div class="form-group col-md-4">
<label for="inputDataInicio">Data Inicio</label>
<input type="date" class="form-control" id="datainicio" name="datainicio"
value="<?=$curso->getDatainicio() ?>" required>
</div>
<div class="form-group col-md-4">
<label for="inputDataTermino">Data Término</label>
<input type="date" class="form-control" id="datatermino" name="datatermino"
value= "<?=$curso->getDatatermino()?>" required>
</div>
<div class="form-group col-md-8">
<label for="professor">Professor</label>
<input type="text" class="form-control" id="professor" name="professor" placeholder="professor" required
value="<?=$curso->getProfessor() ?>">
</div>
<div class="form-group col-md-8">
<label for="local">Local do Curso</label>
<select name="fornecedor_id" class="form-control">
<option selected>Escolher...</option>
<?php foreach($fornecedores as $fornecedor) :?>
<?php
$essaEhAfornecedor = $curso->getfornecedor()->getId()
== $fornecedor->getId();
$selecao = $essaEhAfornecedor ? "selected='selected'" : "";
?>
<option value="<?=$fornecedor->getId() ?>" <?=$selecao ?> >
<?=$fornecedor->getCidade() ?>
</option>
<?php endforeach ?>
</select>
</div>
<br>
<center><button type="submit" name="submit" id="registrar"
class="btn btn-primary" ng-disabled="!checked">CADASTRAR</button> </center>
</div>
```Este é meu banco nas funções altera e busca
function buscaCurso($conexao, $id) {
$query = "select c.*, f.cidade as fornecedor_cidade from cursos c
inner join fornecedores f on(c.fornecedor_id = f.id)
where c.id = {$id}";
$resultado = mysqli_query($conexao, $query);
$array = mysqli_fetch_assoc($resultado);
$curso = new curso();
$curso->setId( $array['id'] );
$curso->setDatainicio( $array['datainicio'] );
$curso->setDatatermino($array['datatermino']);
`