Próbuję dowiedzieć się, czy możliwe jest publikowanie serialize()
i inne dane spoza formularza.
Oto, co myślałem, że zadziała, ale wysyła tylko 'wordlist'
dane formularza, a nie dane.
$.post("page.php",( $('#myForm').serialize(), { 'wordlist': wordlist }));
Czy ktoś ma jakieś pomysły?
javascript
jquery
Vitaliy Isikov
źródło
źródło
serializeArray
nie tworzy struktury, o której myślisz, że tworzy. Nie jestem pewien, co próbujesz pokazać w swoim demo. Po prostu ostrzegasz o długości tablicy. Jeśli moje demo Cię nie przekonuje, zajrzyj do dokumentacji .Spróbuj $ .param
źródło
Alternatywne rozwiązanie, na wypadek, gdybyś musiał to zrobić podczas przesyłania pliku Ajax:
LUB jeszcze prostsze.
źródło
Jeśli chcesz dodać obiekt javascript do danych formularza, możesz użyć następującego kodu
Lub jeśli dodasz metodę serializeObject () , możesz wykonać następujące czynności
źródło
[{name: 'wordlist'}, {value: wordlist}]
. To nie jest w formacie zrozumiałym dla jQuery, więc wątpię, żeby to faktycznie działało.serializeArray()
produkować[{name1: 'value1'}, {name2: 'value2'}]
”. Nie, nie działa: jsfiddle.net/akyz1LcyW nowej wersji jquery można to zrobić w następujący sposób:
serializeArray()
push()
lub podobne metody w celu dodania dodatkowych parametrów do tablicy,$.param(arr)
aby uzyskać serializowany ciąg, który może być użyty jako parametr jquery ajaxdata
.Przykładowy kod:
źródło
źródło
Możesz mieć formularz zawierający dodatkowe dane jako ukryte pola, które ustawisz tuż przed wysłaniem żądania AJAX do odpowiednich wartości.
Inna możliwość polega na użyciu tego małego klejnotu do serializacji twojego formularza do obiektu javascript (zamiast ciągu) i dodania brakujących danych:
źródło
serializeObject
. Skąd to masz?Możesz tego użyć
źródło
Lubię utrzymywać przedmioty jako obiekty i nie robić szalonych zmian typu. Oto moja droga
jeśli nie widzisz z góry, użyłem funkcji .concat i przekazałem w obiekcie zmienną post jako „nazwa” i wartość jako „wartość”!
Mam nadzieję że to pomoże.
źródło