sEnte 0 Denunciar mensagem Publicado 29 de Janeiro de 2013 Isto é mais uma dúvida de como fazer... Passo a explicar. No caso de um blog, posso adicionar posts a determinadas categorias. Código HTML para uma dropdown <select> <option value = "1">-- SELECT--</option> <option value = "2">one</option> <option value = "3">two</option> <option value = "4">three</option> <option value = "5">four</option> </select> Em relação a BD posso adicionar os campos à BD inclusivé o -- SELECT -- A ideia é por exemplo quando estiver selecionado o -- SELECT -- dar uma mensagem do tipo seleciona a categoria. É mais simples fazer um if onde mysql-query $row será comparado a -- SELECT -- e se for true dar mensagem de erro ou haverá outra maneira mais simples de o fazer. Não tenho código feito neste PC mas mais tarde posso colocar um exemplo prático "If It Ain't Broke, Break it and build something Cooler!" Unknown Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 29 de Janeiro de 2013 Nunca entendi se está correto, mas eu sempre fiz assim (desde que o HTML5 passou a ser suficientemente suportado): <select class="requiredCheckbox" required> <option value="" selected>-- SELECT--</option> <option value="1">one</option> <option value="2">two</option> <option value="3">three</option> <option value="4">four</option> </select> Se não receber um inteiro neste, limito-me a rejeitar o formulário. Tão simples como isso. Não é preciso andar a ligar à BD e comparar valores... N sei de aonde é que veio essa tua ideia. Não sei de aonde é que veio essa tua ideia de até considerares que é o conteúdo da opção que é enviado e não o valor (@value). É ao contrário. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
sEnte 0 Denunciar mensagem Publicado 29 de Janeiro de 2013 (editado) Bem se calhar expliquei-me mail. Isso em HTML5 está correcto, mas no meu caso eu tenho as <option> numa BD e depois populo através de um query que me vai buscar as diferentes categorias à BD <select name="category"> <?php foreach(get_categories() as $category){ ?> <option value="<?php echo $category['id']; ?>"> <?php echo $category['name']; ?> </option> <?php } ?> </select> ou seja vou buscar as categorias dentro de BD. Por isso é que falei nessa trapalhada de andar a comparar valores. Actualmente tenho 3 categorias "Uncategorised", "Categoria1" e "Categoria2". A minha ideia era ter por defeito a -- SELECT -- mas caso do user se esquecesse de mudar de categoria ia dar um erro a dizer Por favor escolha uma categoria para publicar a mensagem Editado 29 de Janeiro de 2013 por sEnte "If It Ain't Broke, Break it and build something Cooler!" Unknown Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 29 de Janeiro de 2013 o que queres é registar uma função de javascript ao submit do form que valide o valor do select ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 29 de Janeiro de 2013 @HappyHippyHippo É o que parece Mais uma situação em que quem pede "não sabe o que pede". Escreve que quer saber alhos mas pergunta bugalhos. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
sEnte 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 (editado) Eu não quero javascript/jquery nenhum. É PHP. Na Base de dados tenho uma tabela de categorias, onde tem os campos cat_id e category Como já disse antes o campo category tem 3 opções. "Uncategorised", "Categoria1" e "Categoria2" e quero juntar outra. " -- SELECT --", mas a select quero que seja a que é selecionada por defeito. Até aqui sem problemas. Agora quero numa <option> ter essas categorias todas, mas quero que essa "-- SELECT --" seja nulo.tal como se fossemos a fazer a validação de um campo de inserção de dados. A ideia é caso a categoria seja selecionada seja "-- SELECT --" dá erro caso contrário adiciona tudo como deve ser. Será que se pode fazer assim? if($category["name"] === "-- SELECT--"){ echo 'Please choose a category'; } Perguntei noutro forum e deram-me alguns exemplos mas queria saber quel a melhor maneira de fazer. <select name="category"> <option value="0">-Select-</option> <?php foreach(get_categories() as $category){ ?> <option value="<?php echo $category["id"]; ?>"> <?php echo $category["name"]; ?> </option> <?php } ?> </select> e depois comparar num if fazer algo do tipo $_POST["category"] == 0 Outra opção dada é meter o "-- SELECT -- " dentro de um array e depois usar o in_array e caso esteja dá erro Editado 30 de Janeiro de 2013 por sEnte "If It Ain't Broke, Break it and build something Cooler!" Unknown Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
brunoais 67 Denunciar mensagem Publicado 30 de Janeiro de 2013 Perguntei noutro forum e deram-me alguns exemplos mas queria saber quel a melhor maneira de fazer. Melhor opção entre as duas? Esta: <select name="category"> <option value="0">-Select-</option> <?php foreach(get_categories() as $category){ ?> <option value="<?php echo $category["id"]; ?>"> <?php echo $category["name"]; ?> </option> <?php } ?> </select> e depois comparar num if fazer algo do tipo $_POST["category"] == 0 Sem dúvida! Eu acho que ainda há melhor mas essa já é boa. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
sEnte 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 Já agora qual é? "If It Ain't Broke, Break it and build something Cooler!" Unknown Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
panickz 1 Denunciar mensagem Publicado 31 de Janeiro de 2013 (editado) A forma mais simples que tens para fazer é usar jquery ou javascript.. <form onsubmit="check();"> <select id="id_select"> <option value="null">--SELECT--</option> <option value="1">2</option> </select> <input type="submit"> Neste caso fazes onsubmit check() e tens de criar a função check. function check(){ if($("id_select").val()=="null"){ alert("Deve escolher uma opção"); return false; }else{ document.id_select.submit(); } } Algo deste genero.. ta uma mistura de jquery com javascript não é muito o meu forte. Acho que é a forma mais viavel do que ires verificar em php. Se tiver null ele não faz submit e manda um alerta senão não faz. Podes verificar em php mas a pagina tera sempre de fazer refresh. Se queres mesmo fazer a verificaçao em php tens de usar um IF. if($_POST["categoria"]=="null") { //por exemplo //Aqui dentro estaria a query que nao vai correr porque esta null. }else{ $warning = "Tem de escolher uma opção."; // OU echo ""Tem de escolher uma opção."" } Se tu tiveres a query na mesma pagina do formulario. Podes defenir um input type=hidden por exemplo com o nome action e value "query" depois o que fazes é que o formulario envia para a pagina onde se encontra caso a verificação falhe colocas a variavel "$warning" aonde quiseres no codigo e caso ela exista o warning aparece caso ele seja enviado não aparece. Terias de acrescentar outro IF: if($_POST["action"]=="query"){ if($_POST["categoria"]=="null") { //por exemplo //Aqui dentro estaria a query que nao vai correr porque esta null. }else{ $warning = "Tem de escolher uma opção."; // OU echo ""Tem de escolher uma opção."" } } Não sei se me fiz entender ou se é isto que pretendes mas ta ai. Editado 31 de Janeiro de 2013 por apocsantos geshi Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites