Question

Je suis en train d'envoyer un nom: paire de valeurs à un script PHP en utilisant l'objet .post $ dans jQuery où le nom et la valeur sont des variables. Je l'ai envoyé les variables à la console dans FF, donc je sais qu'ils sont correctement réglés, mais quand je considère les en-têtes étant envoyé, seule la variable de valeur est évaluée correctement, le nom est envoyé comme une chaîne littérale de la variable Nom. Voici la fonction dans son intégralité:

$(document).ready(function() {
  $('#formS form fieldset > input').blur(function() {
    if($(this).val()=='' && $(this).prev().is('img')) {
     $(this).prev().remove();
     return;
    }

    if((($(this).is('#formS form fieldset > input[id*=mail]')) ||
    ($(this).is('#formS form fieldset > input[id*=sername]'))) &&
    ($(this).val()!="")) {
      var email_field = $(this);
      if(!$(this).prev().is('img')){
      $('<img src="" alt="" style="width: 16px; height: 16px;" />').insertBefore(this);
      }
      var type = ($(this).is('input[id*=sername]'))?'username':'email';
      var value = $(this).val();
      $.post('checkemail.php5', {type:value}, function(data) {
                if(data == "free") {
         email_field.prev().attr('src','/images/greentick.png').attr('alt','available');
        } else if(data == "taken") {
         email_field.prev().attr('src','/images/redcross.png').attr('alt','taken');
        } else {
          console.log('hmmm'+data);
        }
        });
        }
        });
});

Ainsi, les en-têtes sont envoyés étant la chaîne littérale type , et quelle que soit la valeur est évaluée à. Tout le monde a des idées pourquoi?

Était-ce utile?

La solution

Parce que la syntaxe {} prend un ensemble de nom: valeur où les noms deviennent la propriété sur l'objet. Ceci est un littéral et ne peut pas être une variable, comme vous le voyez. Utilisez ceci:

var params = {};
params[type] = value;

et passer params au lieu de {type: valeur}

Autres conseils

Je ne suis pas sûr de ce que votre problème est, il est pas si clair pour moi. Je ne savoir pas grand-chose en php aussi mais vous pourriez vouloir essayer comme ceci:

type var = ($ (this) .is ( 'entrée [id = * sername]')) 'nom d'utilisateur': 'email'; var value = $ (this) de .val (); var data = valeur de type + "=" +;

$. Après ( 'checkemail.php5', les données, la fonction (données) {.......

mieux,

exactement ce que je recherchais pour Dark Falcon, merci!

est difficile de trouver cette solution, BTW. Je suppose que la plupart des gens sont tout simplement sérialisation les données de formulaire et l'envoi que le param de poste, mais dans certains cas, il est agréable à utiliser variable name => appariement variable-valeur, qui me conduisait les noix comme rien que j'essayé en utilisant le nom comme la variable travaillait

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top