crowseth 0 Denunciar post Postado Dezembro 15, 2010 Como faço para que quando o usuario digitar no meu campo "dbnome" e "dbplaca" as letras fiquem em maiuscula. já tentei usar "strtoupper", mas não sei como usar ele no form, daí fico na duvida onde usar.. no forme de cadastro ou na pagina que insere os dados. cadastro.php <div class="wrap"> <?php screen_icon(); ?> <h2><?php echo esc_html( $title ); ?></h2> </div> <td><div align="center"><?php echo("<h2>Abaixo você preencherá com os dados emitidos do laudo.</h2>");?></div> </div> <form id="cadastro" name="cadastro" method="post" action="cadastrado.php"> <table class="form-table"> <tr> <th scope="row"><label for="dbos">Nº da OS</label></th> <td><input name="dbos" id="dbos" type="text" size="6" value="" /></td> <td>Digite o número da Ordem de Serviço. </td> </tr> <tr> <th scope="row"><label for="dblaudo">Nº do Laudo</label></th> <td><input name="dblaudo" id="dblaudo" type="text" size="6" value="" /></td> <td>Digite o número do laudo</td> </tr> <tr> <th scope="row"><label for="dbdata">Data de emissão</label></th> <td><input name="dbdata" id="dbdata" type="text" size="10" value="<?php $data=date("d/m/Y"); echo $data;?>" /></td> <td>Digite a data de emissão do laudo.</td> </tr> <tr> <th scope="row"><label for="dbnome">Nome do Proprietário</label></th> <td><input name="dbnome" id="dbnome" type="text" size="50" value="" /></td> <td>Digite o nome do proprietário do veiculo.</td> </tr> <tr> <th scope="row"><label for="dbplaca">Placa do veiculo</label></th> <td><input name="dbplaca" id="dbplaca" type="text" id="prefix" value="" size="8" /></td> <td>Digite a placa do veiculo.</td> </tr> </table> <input name="cadastar" type="submit" value="Cadastrar" class="button" /></p> </form> pagina que insere no banco de dados: cadastrado.php <?php // RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO ! $dbos= $_POST ['dbos'];//atribuição do campo "Nº da OS" vindo do formulário para variavel $dblaudo= $_POST ['dblaudo'];//atribuição do campo "Nº do Laudo" vindo do formulário para variavel $dbdata= $_POST ['dbdata'];//atribuição do campo "Data de emissão" vindo do formulário para variavel $dbnome= $_POST ['dbnome'];//atribuição do campo "Nome do Proprietário" vindo do formulário para variavel $dbplaca= $_POST ['dbplaca'];//atribuição do campo "Placa do Veiculo" vindo do formulário para variavel //Gravando no banco de dados ! conectando com o localhost - mysql $conexao = mysql_connect("localhost","root",""); //localhost é onde esta o banco de dados. if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); //conectando com a tabela do banco de dados $banco = mysql_select_db("veiculos",$conexao); //nome do banco de dados que deseja que seja inserida os dados cadastrais if (!$banco) die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); //Query que realiza a inserção dos dados no banco de dados na tabela indicada acima $query = "INSERT INTO cadastro VALUES (NULL,'$dbos', '$dblaudo', '$dbdata', '$dbnome', '$dbplaca')"; mysql_query($query,$conexao); echo "Seu cadastro foi realizado com sucesso! Agradecemos a atenção."; //mensagem que é escrita quando os dados são inseridos normalmente. ?> outra duvida e como eu faço para que no formulario "cadastro.php" para validar para que não aceite campo sem preenchimento. ja tentei usar javascript, mas não funcionou. Agradeço de ante mão e espero que alguem consiga me ajudar. abraços, Doug Compartilhar este post Link para o post Compartilhar em outros sites
Alexandre M Narciso 0 Denunciar post Postado Dezembro 15, 2010 Opa, bom dia! Então, você poderia colocar colocar um text-transform no input: <input type="text" name="meucampo" style="text-transform:uppercase" /> Mas aí, se não me engano, o PHP receberá o valor ignorando o upper então será necessário inserir no db assim: INSERT INTO minhatabela SET meucampo=UPPER($meucampo) Uma outra opção seria marcar o <input> no html com um evento onblur e transformar com javascript: <input type="text" name="meucampo" onblur="evento(this);" /> <script type="text/javascript"> function evento(obj) { obj.value = obj.value.toUpperCase(); } </script> Espero que ajude! Compartilhar este post Link para o post Compartilhar em outros sites
srnetcave 1 Denunciar post Postado Dezembro 15, 2010 Bem, provavel que queira utilizar os dois, javascript para converter o input para maiusculo on the fly, e php, para salvar os dados em maiusculo no banco em caso do javascript estar desabilitado no lado do usuario. Javascript function toUpper(element) { element.value = element.value.toUpperCase(); } <input type="text" onkeyup="toUpper(this);"/> Php $dbnome= strtoupper($_POST ['dbnome']);//atribuição do campo "Data de emissão" vindo do formulário para variavel $dbplaca= strtoupper($_POST ['dbplaca']);//atribuição do campo "Placa do Veiculo" vindo do formulário para variavel agora sobre a validação, você tem algumas opções, eu prefiro trabalhar com JSON, posto o form para digamos 'cadastro.php' e retorno oque quiser com JSON e posso fazer oque quiser com os valores retornados. Utilização, ajax e json. Outra seria ter sua validação na mesma pagina do formulario, assim voce poderia enviar o form para a propria pagina e atribuir valores de erro a variaveis e exibilas proximo ao elemento, boa opcao se nao quiser esquentar a cabeca com javascript. Mas um exemplo simples de validacao com javascript seria algo assim... Utilizando jQuery function clearErrorBox() { $('.errorbox').detach(); } function submitForm(submit) { clearErrorBox(); var form = $(submit+':parent'); var data = form.serialize(); $.ajax({ url: 'cadastrado.php', type: 'post', dataType: 'json', data: data, success: function(data) { if (data.success != true) { $('input[name="'+data.element+'"]').after('<span class="errorbox">'+data.msg+'</spam>'); } } }); } Form <form id="cadastro" name="cadastro" method="post" action="cadastrado.php"> <table class="form-table"> <tr> <th scope="row"><label for="dbos">Nº da OS</label></th> <td><input name="dbos" id="dbos" type="text" size="6" value="" /></td> <td>Digite o número da Ordem de Serviço. </td> </tr> <tr> <th scope="row"><label for="dblaudo">Nº do Laudo</label></th> <td><input name="dblaudo" id="dblaudo" type="text" size="6" value="" /></td> <td>Digite o número do laudo</td> </tr> <tr> <th scope="row"><label for="dbdata">Data de emissão</label></th> <td><input name="dbdata" id="dbdata" type="text" size="10" value="<?php echo date('d/m/Y');?>" /></td> <td>Digite a data de emissão do laudo.</td> </tr> <tr> <th scope="row"><label for="dbnome">Nome do Proprietário</label></th> <td><input name="dbnome" id="dbnome" onkeyup="toUpper(this);" type="text" size="50" value="" /></td> <td>Digite o nome do proprietário do veiculo.</td> </tr> <tr> <th scope="row"><label for="dbplaca">Placa do veiculo</label></th> <td><input name="dbplaca" id="dbplaca" onkeyup="toUpper(this);" type="text" id="prefix" value="" size="8" /></td> <td>Digite a placa do veiculo.</td> </tr> </table> <input name="cadastar" type="button" onclick="submitForm($(this));" value="Cadastrar" class="button" /></p> </form> cadastrando.php if (isset($_POST['dbplaca'])) { $dbplaca = $_POST['dbplaca']; if (strlen($dbplaca) < 7) { echo '{"success": false, "element": "dbplaca", "msg": "Valor invalido! 7 Caracteres alphanumericos."}'; } else { echo '{"success": true}'; } exit; } Outra dica eh tentar sempre tratar os valores no PHP, e nao utilizar built in functions do MySQL para tratar valores, eu pelo menos prefiro assim, alem de deixar suas queries mais limpas e faceis de ler... isso INSERT INTO table SET a = valor, b = valor, c = valor WHERE bla = bla; eh mais facil de ler do que isto... INSERT INTO table SET a = UCASE(valor), b = LCASE(valor), c = TRIM(valor) WHERE bla = bla; Compartilhar este post Link para o post Compartilhar em outros sites