1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

$.post() em evento .blur(), validação real-time com Jquery

Boa tarde galeraa, melhorando a usabilidade do meu projeto me deparei com uma ideia muito legal, mas estou tendo dificuldade para implementá-la:

Preciso que cada campo do meu formulário seja validado em real-time, (isso já acontece), no entanto, além disso quero que durante o evento .blur() seja execultado um $.post() ou mesmo um $.ajax(), para que um atributo do meu objeto php possa assumir o valor assim que o evento .blur() aconteça.

BOM, o código de um único input para terem noção do funcionamento:

<script>
$('#nome').blur(function(){
        var regex = /(\w)\1{2,}|\s{2}|\S{15}|[^aãábcçdeéêfghiíjklmnoóõpqrstuúvxzxywzAÃÁBCÇDEÊÉFGHIÍJKLMNOÓÕPQRSTUÚVXYWZ ]/;
        if($('#nome').val().length < 15 || $('#nome').val().length > 40 || regex.test($('#nome').val()) ){
            $('#campo_nome').removeClass('bs-callout bs-callout-success');
            $('#campo_nome').addClass('bs-callout bs-callout-danger');
        }else{
            $('#campo_nome').removeClass('bs-callout bs-callout-danger');
            $('#campo_nome').addClass('bs-callout bs-callout-success');
            $.post("controlador_formulario.php", {nome : $("#nome").val()} );
            alert($("#nome").val());//aqui apenas para certificar que está sendo pego o valor do campo
};
        });
</script>



//tentei usar das seguinte formas para tentar capturar o post
<?php $paciente->nome = $_POST['nome'];?>
<?php (isset($_POST['nome']) ? $paciente->nome = $_POST['nome'] : ""; ?>

Uma observação importante, assim que retiro o foco do input com id="nome", é enviado o post, e vejo no corpo da requisição!

O que acontece é que meu atributo não pega esse valor no tempo certo, não sei realmente o que acontece.

RESUMINDO, a validação acontece real time sem necessidade de submit, quero que o atributo mude de valor real-time junto com o JS.

E isso não vem dando certo, por que o php é interpretado no servidor, e não espera o js:

if($.post("controlador_formulario.php", {nome : $("#nome").val()} )){
                <?php $paciente->nome = $_POST['nome']; ?>
                <?php echo $paciente->nome; ?>
            }
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags php javascript jquery ajax post get ou faça a sua própria pergunta.