Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera, estou tentando fazer a validação de um campo dinâmico, mas estou tendo problemas. Ele funciona assim, tenho um campo chamado data e outro chamado código. Quando digito um código ele vai lá no banco e confere se o código digitado corresponde aquela data que eu validei, caso contrário, dá um erro. O problema é que o nome do input é codigo[], ou seja, ele trás um array. O problema está aí, segue o que já foi feito:
<script type="text/javascript">
$(function(){
$("input[name='codigo[]']").blur(function(){
var codigo = $("input[name='codigo[]']").val();
$.post('check_dates',{codigo: codigo},function(data){
$('#resultado').html(data);
if(data != 'Disponível') {
$("input[name='codigo']").val('').focus();
}
});
});
});
</script>
Esse é o que valida o campo em tempo real, sem precisar dar refresh na página.
<script type="text/javascript">
$(function() {
$("#add_input").click(function() {
var input = '<div class="control-group number"><br>';
input += ' <label class="col-sm-2 control-label">Código:</label>';
input += ' <div class="col-sm-6">';
input += ' <input name="codigo[]" type="text" class="form-control" placeholder="Código de barras" data-placement="top" onfocus required></div>';
input += ' <a href="#new_input" class="btn btn-danger del_row"><i class="fa fa-remove"></i></a></div>';
$("#codigos").append(input);
return false;
});
$('.del_row').live('click', function() {
$(this).parent().remove();
});
});
</script>
Esse é o que insere os campos dinâmicos.
$sql_date = "SELECT * FROM tb_estoque_users WHERE EST_CODIGO = '".$_POST['codigo']."' AND DATE(EST_CADASTRO) != '".$_SESSION['date']."'";
$date = mysqli_query($link, $sql_date) or die(mysqli_error($link));
if(mysqli_num_rows($date) > 0 ) {
echo "<script language:'javascript'>window.alert('Pacote inserido de outro dia!')</script>";
}else{
echo "Disponível";
}
Essa é a consulta.
Ele até chega a validar no primeiro campo, mas nos outros não. Não sei onde está erro, agradeço a ajuda de vocês.Blz amigo,
Mas, você teria como dar um exemplo, pois preciso desse [ ] para fazer inserções no banco. Tipo, acrescento umas 10 linhas dinamicamente e, cada linha, virá com um codigo[ ] diferente, se eu retirar [ ], não vai dar problema na hora de salvar no banco?
Outra coisa, se eu colocar pelo ID, na hora de validar sem refresh, como ele vai saber pra qual campo ele irá voltar, caso dê erro na verificação?
Veja abaixo:
if(data != 'Disponível') {
$("input[name='codigo[xxxxxxxxxx]']").val('').focus();
}else{
$("input[name='codigo[xxxxxxxxxx]']").focus();
}
Como inseri os campos dinamicamente, cada um terá um ID, ou seja, depois de eu ter inserido 8 campos e, no nono der um erro, ele precisa voltar para o 9, e não para o primeiro. Como farei isso?Olá,
Então, os dados NUNCA devem ser enviados para o banco de dados sem qualquer tipo de tratamento do lado do servidor, isso é uma falha de segurança ABSURDA, muda isso agora.
Você vai acessar pelo ID do objeto
if(data != 'Disponível') {
$("#xxxxxxxxxx").val('').focus();
}else{
$("#xxxxxxxxxx").focus();
}
E vai precisar tratar do lado do servidor para montar o comando de inclusão no banco, não vai pegar diretamente o que vem da página
Cara,
Existem diversas coisas que você precisa fazer: