emersona
(usa Outra)
Enviado em 11/10/2012 - 17:30h
Prezados,
Tenho uma tabela de alertas no banco de dados com as seguintes colunas: Nome, Cor, Descrição. As informações contidas nesta tabela vão para uma determinada página no site que desenvolvo. Nesta página contém as opções de cadastrar um novo alerta, editar um alerta existente e excluir um alerta.
Meu problema é com a opção editar. O usuário só pode editar a cor e a descrição. E é aí que está o problema, quando o usuário edita apenas um campo ou dois e manda salvar a linha que foi editada fica em branco, a função que estou usando só aceita se eu editar todas as três colunas (nome, cor e descrição). vou colocar o código abaixo e agradeço se puderem me ajudar. Estou utilizando o CakePhp.
Este código está no controller:
if($nome)
{
if($this->NivelAlerta->editarNivel($this->data, $nome)) //Chama Função no Model. Envia nome, cor, descricao recebidos de get_nivel.ctp e
o nome do alerta antes de ser editado.
$this->set('redirect', "<script>location.href='/admin/nivel/index';</script>");
else
$this->Session->setFlash("Erro ao cadastrar nivel de alerta!");
}
_______________________________________________________________________
código no Model:
public function editarNivel($nivel_alerta, $nome) //$nivel_alerta são os dados editados. $nome é o nome do Nivel antes de ser editado.
{
$alterado_ok = false;
$dataSource = $this->getDataSource();
//foreach sobre os novos dados
foreach($nivel_alerta as $nivel => $v)
{
$cor = $v['cor'];
$descricao = $v['descricao'];
}
$dataSource->begin($this);
$query = "UPDATE nivel_alerta set cor = '$cor', descricao = '$descricao' WHERE nome = '$nome';";
if($this->query($query))
{
$dataSource->commit($this);
$alterado_ok = true;
}
else
{
$dataSource->rollback($this);
}
return $alterado_ok;
}