Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
HELP ME PLEASE - PHP LÓGICA :
Estou com o seguinte problema relacionado a check box:
Tenho 3 tabelas:
1- RAMOS (id, titulo, usuario);
2- RELACIONAR (id, id_empresa, id_ramos);
3- EMPRESAS (id, titulo);
Agora e o seguinte insiro as empresas na tabela EMPRESAS e tambem na RELACIONAR, a tabela RELACIONAR e para eu identificar quais RAMOS aquela EMPRESA trabalha. Por ex: CentralBorrachas - trabalha com pneus, ferramentas, parafusos, onde o id do pneu, ferramentas e parafusos ja estão inseridos na tabela relacionar (id_ramos) juntamente com o id da empresa (id_empresa).
Ate aqui blz, agora eu vou listar essas empresas para que eu possa editar as informações, o problema e o seguinte, quando eu vou editar uma empresa especifica eu quero que os CHECK BOX ja estejam marcados como checked, e não estou conseguindo fazer isso.
Para esclarecer mais:
Ao Clicar em editar Empresa quero listar todos os RAMOS da tabela RAMOS e deixar selecionado os ramos que ja pertencem a EMPRESA.
Se o valor do banco for igual ao valor do checkbox, atribua-o como "checado".
Vinicius segue o código:
TABELAS:
Ramos (id, titulo)
Empresas (id, nome_empresa)
Relacionar (id, id_empresa, id_ramos)
-----------------------------------------------
Ex. na tabela ramos tenho
1 - Madeira
2 - Pedras
3 - Tijolos
4 - Cimento
Agora vamos supor que eu tenha uma empresa "Madezato" ela so trabalha no ramo de madeiras, e ja esta cadastrada no BD, ai vamos supor que agora alem de MADEIRA ela vai trabalhar com PEDRAS, ai vou na pagina para editar e selecionar também a opção PEDRAS mas eu quero que ja fique pré selecionado a OPÇÃO MADEIRA pois e a area que ela ja trabalhava.
<?php
require('../Connections/mit.php');
$sel_ramos = mysql_query("SELECT * FROM ramos ORDER BY titulo ASC");
while($ex_ramos = mysql_fetch_array($sel_ramos)){
?>
<label><input type="checkbox" name="setores[]" value="<?php echo $ex_ramos['id']; ?>"><?php echo $ex_ramos['titulo']; ?></label><br />
<?php
}
?>Hayllon, boa tarde.
Pelo que estou vendo, este seu código esta trazendo TODOS os ramos disponíveis, ou seja, não esta levando em consideração se a empresa atua nos ramos.
Desta forma, vc deve adicionar neste seu código um outro SELECT que traga quais são os ramos de atuação da empresa em questão, desta forma vc poderia fazer a seguinte alteração:
$sel_ramos = mysql_query("SELECT * FROM ramos ORDER BY titulo ASC");
while($ex_ramos = mysql_fetch_array($sel_ramos)){
if(array_search($ex_ramos['id'], $array_com_id_ramos_da_empresa) !== false) $checked=" checked=\"checked\"";
else $checked="";
?>
<label><input type="checkbox" name="setores[]" value="<?php echo $ex_ramos['id']; ?>" <?php echo $checked; ?>><?php echo $ex_ramos['titulo']; ?></label><br />
<?php
}
?>Você pode fazer isso sem a tabela "relacionar" amigo. Você pode relacionar as duas com PHP sem necessáriamente ter uma tabela que as relacionem.
code, please.