Não ficou muito claro para mim a forma que o Checked e o Selected funcionam. Eu sei que ele vai verificar qual está setado para mostrar na pagina produto-altera-formulario.php, porém não ficou muito claro pra mim o funcionamento deles.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não ficou muito claro para mim a forma que o Checked e o Selected funcionam. Eu sei que ele vai verificar qual está setado para mostrar na pagina produto-altera-formulario.php, porém não ficou muito claro pra mim o funcionamento deles.
Oi Cesar, vou tentar explicar sem envolver código PHP, ok? Acredito que ficará mais fácil de visualizar.
A ideia tanto do checked quanto do select é essa aí que você falou, indicar qual é a opção que já deve vir marcada. No caso do checked, qual checkbox deve vir marcadinho e no caso do selected, qual opção do select deve ser exibida.
Para isso acontecer então, nos seus checkboxes, você indica qual opção que quer que venha checada só adicionando nele o atributo checked. Então se você tiver um checkbox para escolher quais são suas linguagens de interesse, você vai ter algo como:
<input type="checkbox" name="interesse" value="php" />PHP
<input type="checkbox" name="interesse" value="java"/>Java
<input type="checkbox" name="interesse" value="csharp"/>C#
<input type="checkbox" name="interesse" value="ruby"/>Ruby
<input type="checkbox" name="interesse" value="python"/>Python
Agora imagine que você vai carregar esse formulário para uma edição, por exemplo, e precisa trazer já os interesses da pessoa marcados. Se ela selecionou que as linguagens que a interessam são Ruby e Java, só é preciso adicionar o atributo checked nelas. Dá uma olhada:
<input type="checkbox" name="interesse" value="php" />PHP
<input type="checkbox" name="interesse" value="java" checked="checked"/>Java
<input type="checkbox" name="interesse" value="csharp"/>C#
<input type="checkbox" name="interesse" value="ruby" checked="checked"/>Ruby
<input type="checkbox" name="interesse" value="python"/>Python
E isso vai fazer com que as duas opções já venham marcadinhas. Claro, puxando isso de um banco de dados, você vai precisar fazer um if e alguma lógica para determinar qual linguagem a pessoa havia selecionado. E Se você detecta que ele havia selecionado a linguagem, adiciona o checked no input.
A mesma regra vale para o selected no caso dos option do input select.