Select opcionais
Olá pessoal poucas horas postei uma duvida e o HUFERSIL me ajudou, sobre um metodo que tenho para retornar os opcionais de um veiculo por ID
ele me retornara todos os opcionais cadastrados e os que forem do veiculo irá o estado do checkbox ira vir como TRUE(marcados)
só que ele me esta retornando todos marcados (TRUE).
Olhem só a query:
public function ListaOpcionaisPorId($idVeiculo)
{
try
{
$smtp = $this->conn->prepare("SELECT
vop.idOpcional,
vop.idVeiculo AS veiculoId,
op.idOpcionais AS OpcionalId,
op.Descricao,
vop.idVeiculo,
IF(vop.idveiculo IS NULL, 0, 1) as selecionado
FROM
opcionais AS op
LEFT JOIN veiculoopcionais AS vop ON op.idOpcionais = vop.idOpcional
AND vop.idveiculo = ?
");
$smtp->bindValue(1, $idVeiculo);
$smtp->execute();
while($Op = $smtp->fetch(PDO::FETCH_OBJ))
{
if ($Op->selecionado == 1) {
$selected = TRUE;
}
$ObjVeiculo = new Veiculo();
$ObjVeiculo->setOpcional($Op->Descricao);
$ObjVeiculo->setStatus($selected);
$arr[] = $ObjVeiculo;
}
return $arr;
}
catch(PDOException $e){
print 'Erro: '.$e->getMessage();
}
}
Tem outro problema tambem, se eu tirar o a condição e o atributo setStatus(); ele me retornam também todos os check's marcados(TRUE)
Olhem só como estou chamando na minha view:
<?
$ArrayOpcionais = $ObjVeiculo->ListarOpcionalPorId((int)$_GET['CodVeiculo']);
for($i = 0; $i < count($ArrayOpcionais); $i++)
{
?>
<div class="controlset-pad">
<input name="Opcionais[]" checked="<?=$ArrayOpcionais[$i]->getStatus();?>" value="<?=$ArrayOpcionais[$i]->getOpcional()?>" type="checkbox" /><label><?=$ArrayOpcionais[$i]->getOpcional()?>
</label>
</div>
<?
}
?>
Agradeço a ajuda desde já
Discussão (3)
Carregando comentários...