J'essaie d'envoyer une paire nom: valeur à un script php en utilisant l'objet $ .post dans jQuery où le nom et la valeur sont des variables. J'ai envoyé les variables à la console dans FF, donc je sais qu'elles sont correctement définies, mais quand je regarde les en-têtes envoyés, seule la variable value est évaluée correctement, le nom est envoyé comme une chaîne littérale de la variable pré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 envoyés sont la chaîne littérale de type, et quelle que soit la valeur évalue à. Quelqu'un a des idées pourquoi?
Merci beaucoup - cela a fonctionné parfaitement. Alors, laissez-moi simplement définir le littéral en dehors de la fonction $ .post, alors? – user97410
Pourrais-je avoir créé beaucoup de telles paires de valeurs de nom dans params et les ai toutes passées, pour être accédé un peu comme les tableaux superglobaux php dans le script appelé? – user97410
Oui, vous pouvez passer autant de variables que vous le souhaitez de cette façon: Ajoutez-les simplement en tant que propriétés sur l'objet params comme params.foo = bar ou en utilisant la syntaxe que j'ai déjà donnée. –