Domanda

Sto cercando di inviare un nome: coppia di valori ad uno script php utilizzando l'oggetto $ .post in jQuery dove entrambi nome e il valore sono variabili. Ho inviato le variabili alla console in FF, quindi so essi vengono impostate correttamente, ma quando osservo le intestazioni di essere inviato, solo la variabile valore è in corso di valutazione in modo corretto, il nome è stato inviato come una stringa letterale della variabile nome. Ecco la funzione nella sua interezza:

$(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);
        }
        });
        }
        });
});

Quindi, le intestazioni di essere inviati sono la stringa letterale Tipo , e tutto ciò che Valore viene valutato come. Qualcuno ha tutte le idee perché?

È stato utile?

Soluzione

Poiché la sintassi {} prende un set di nome: valore in cui i nomi diventano di proprietà sull'oggetto. Si tratta di una letterale e non può essere una variabile, come vedete. Utilizzare questa:

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

e passare params invece di {type: valore}

Altri suggerimenti

Non sono sicuro di ciò che il problema è che non è così chiaro per me. Io non molta conoscenza in PHP anche, ma si potrebbe desiderare di provare in questo modo:

tipo var = ($ (this) .è ( 'ingresso [id * = sername]')) 'username': 'e-mail'; valore di var = $ (this) .VAL (); Dati var = tipo + "=" + Valore;

$. Posta ( 'checkemail.php5', i dati, la funzione (i dati) {.......

Molto meglio,

esattamente quello che stavo cercando per Dark Falcon, grazie!

era difficile trovare questa soluzione, BTW. Presumo la maggior parte delle persone sono solo serializzare i dati del modulo e l'invio che come il post param, ma in alcuni casi è piacevole da usare nome-variabile => variabile-valore di accoppiamento, che mi stava facendo impazzire come niente ho provato quando si utilizza il nome come variabile stava lavorando

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top