2009-07-22 4 views
2

Lorsque j'utilise la fonction de flou sur la zone de texte pour vérifier le nom en double en utilisant jquery ajax fonctionne très bien.jquery ajax- Comment vérifier le nom en double

Voici le code:

function duplicate(data){ 
    //alert(data); //successfully gives the value from the text input 
    $.post("test.php", {name: data}, function (data){ 
     if(data){ 
      alert('duplicate name'); 
     } 
    }); 
} 

$(function() { 
    $("#name").blur(function(){ 
     var data = $("#name").val(); 
     duplicate(data); 
    }); 
}); 

Le problème est-il montre message d'alerte, dans certains cas, nous soumettons avec nom en double lui-même donc il est inutile de vérifier la duplication. Faites-moi savoir la solution pour vérifier le nom en double en utilisant la fonction onsubmit (jquery ajax ou javascript).

+0

ce qui est exactement test.php retournaient? – DLH

+0

Voici le test.php: $ name = $ _POST ['nom']; \t if ($ name == 'test') { \t \t echo "Nom en double"; \t} else { \t \t echo "Pas un doublon"; Si ce n'est pas un doublon, puis je enregistrer le nom dans l'enregistrement en utilisant le code php. – Murugesh

Répondre

3

Votre question est source de confusion car vous utilisez le même nom de variable, data, en dehors de votre demande, ainsi que dans le rappel de la demande. Je ne suis pas sûr si vous demandez de vérifier la duplication basée sur les données qui ont déjà été soumises et est de retour sur la page, les données qui existent sur le serveur, ou si les données sont simplement "oui".

Basé sur le code que vous avez fourni, il serait semble que les données sont considérées à dupliquer si le serveur retourne une fois que les yesPOST finalise.

Quoi qu'il en soit, peut-être cela vous aidera:

$(function() { 
    $('#name').blur(function() { 
    duplicate($('#name').val()); 
    }); 
}); 

function duplicate(sData) { 

    var sDuplicateValue = ...; // assign this whatever constitutes a duplicate value 
    if(isDataDuplicate(sData, sDuplicateValue)) { 
    // you have duplicate data 
    } 

    $.post('test.php', { name: sData }, function(sResposeData) { 

    /* because of question ambiguity, i don't know if you want to compare 
    * sData and sResponseData, or sResponseData and "yes." if it's the latter, 
    * just do isDataDuplicate(sResponseData, "yes"); otherwise, do this: 
    */ 

    if(isDataDuplicate(sData, sResponseData) { 
     // it's the same.. 
    } 
    }); 

} 

function isDataDuplicate(sData, sDuplicateValue) { 
    if(sDuplicateValue === null) { 
    return sData === 'yes'; 
    } else { 
    return sData === sDuplicateValue; 
    } 
} 
1

Je vais faire quelque chose comme ceci:

$(function() { 
    $("#name").blur(function(){ 
     var value = $("#name").val(); 
     $.post(
      "checkDuplicates.php", 
      { name: value}, 
      function (data){ 
       if(data.response === 'yes'){ 
        $("#name").css({ 
         'border': '1px red solid' 
        }).parent().append('This name already exists'); 
       } else { 
        return false; 
       } 
      }, 
      'json' 
     ); 
    }); 
}); 
Questions connexes