Niektóre tła:Ciekawy: czy możliwe jest posiadanie dynamicznych nazw zmiennych danych Ajax?
Na ostatnim projekcie, próbowałem napisać opływowy jQuery plugin, który będzie obsługiwać kilka połączeń Ajax dokonane po różne komponenty były aktualizowane. Napisałem funkcji JavaScript jako plugin tak, że może po prostu nazwać to na różnych wejść, tak jak poniżej:
$("#email").updateChanges();
Następnie od wewnątrz wtyczki, zebrałem id, wartość wejścia, itp
Problem:
Coś, co naprawdę chciałem zrobić, ale nie mogłem znaleźć rozwiązania, było dynamiczne generowanie nazwy zmiennej danych przekazywanej przez ajax.
Aby być bardziej jasne, ponieważ ta funkcja:
jQuery.fn.updateChanges = function(){
this.bind('blur',function(){
var inputName = $(this).attr("name");
var inputValue = $(this).val();
$.post('/ajax/updateValue.php',
{ email: inputValue }, function(ret){
if (ret=='success') alert("all good!");
}
}
}
... jak mam przedstawić dane dla wywołania Ajax jako { password: inputValue }
zamiast { email: inputValue }
gdy zmienna inputName to „hasło” zamiast "e-mail"? Jest to bardzo konkretny przykład, ale w zasadzie po prostu szukam sposobu na odczytanie nazwy zmiennej danych z oddzielnej zmiennej dynamicznej.
Próbowałem window[inputName]
bez powodzenia i jestem prawie przekonany, że to niemożliwe. Jeśli jednak ktoś ma pomysł, byłbym pod wrażeniem.
Zamiast tego, zamiast tego musieliśmy użyć { type: inputName, value: inputValue }
, ale wymagało to trochę więcej pracy w PHP (nie pytaj mnie, jestem po prostu facetem z przodu).
Z góry dziękuję!
Jak planujesz komunikować żądaną nazwę zmiennej do funkcja? Czy to będzie parametr? – JorenB