Używając $('#form').serialize()
, mogłem przesłać to na stronę PHP. Jak teraz odserializować go w PHP? Został on zserializowany w jQuery.
php
jquery
serialization
Gene Bean
źródło
źródło
Odpowiedzi:
Nie powinno być konieczne odserializowanie czegokolwiek w PHP z
serialize
metody jquery . Jeśli serializujesz dane, powinny one zostać wysłane do PHP jako parametry zapytania, jeśli używasz metody GET z żądania AJAX lub po vars, jeśli używasz żądania AJAX POST. Zatem w PHP można uzyskać dostęp do wartości takich jak$_POST["varname"]
lub w$_GET["varname"]
zależności od typu żądania.serialize
Metoda zajmuje tylko elementy formularzy i umieszcza je w postaci łańcucha."varname=val&var2=val2"
źródło
serialize
zwraca. Zobacz naprawdę popularną odpowiedź poniżej.Pod warunkiem, że twój serwer otrzymuje ciąg, który wygląda mniej więcej tak (co powinien, jeśli używasz jQuery
serialize()
):... coś takiego to chyba wszystko, czego potrzebujesz:
$params
powinna być wtedy tablicą wymodelowaną zgodnie z oczekiwaniami. Zauważ, że działa to również z tablicami HTML.Więcej informacji można znaleźć pod adresem : http://www.php.net/manual/en/function.parse-str.php
Mam nadzieję, że to pomocne. Powodzenia!
źródło
// jQuery Post
// jquery.post serializowany var - TO - format tablicy PHP
// Dostajesz to samo
źródło
źródło
Na stronie HTML :
na stronie PHP :
na tym kodzie php,
f1
pole powrotu .źródło
Dlaczego nie używać tablicy asocjacyjnej, aby można było z niej łatwo korzystać
pozdrowienia
źródło
$i = 0;
Zmodyfikowana odpowiedź Murtaza Hussaina :
źródło
Po prostu zrób to
źródło
Nie wiem, której wersji Jquery używasz, ale to działa dla mnie w jquery 1.3:
Następnie możesz uzyskać dostęp do kluczy tablic POST, tak jak zwykle robisz to w php. Po prostu spróbuj z
print_r()
.Myślę, że zawijasz zserializowaną wartość formularza we właściwości obiektu, co jest bezużyteczne, o ile wiem.
Mam nadzieję że to pomoże!
źródło
To jest odpowiedź dla user1256561. Dziękuję za twój pomysł ... jednak nie zająłem się dekodowaniem adresów URL wspomnianym w kroku 3.
więc tutaj jest kod php, który dekoduje zserializowane dane formularza, jeśli ktoś tego potrzebuje. Nawiasem mówiąc, użyj tego kodu według własnego uznania.
Dane wejściowe adresu URL będą wyglądać następująco: atrybut1 = wartość1 i atrybut2 = wartość2 i atrybut3 = wartość3 i tak dalej
Wynik powyższego kodu nadal będzie w tablicy i możesz go zmodyfikować, aby przypisać go do dowolnej zmiennej, a to zależy od tego, jak chcesz dalej używać tych danych.
źródło
Potrzebujesz tylko nazwy atrybutu wartości w formularzu. Przykład:
Formularz
Javascript
PHP - index.php
źródło
Posługiwać się:
PHP pobierz tablicę, nie potrzebujesz odserializowania;)
źródło
Myślę, że musisz oddzielić nazwy formularzy od ich wartości, jedną metodą jest eksplodowanie
(&)
, aby uzyskaćattribute=value,attribute2=value
.Chodzi mi o to, że przekonwertujesz serializowany ciąg jQuery na tablice w PHP.
Oto kroki, które należy wykonać, aby uzyskać bardziej szczegółowe informacje.
jQuery
doPHP
strony (np.ajax.php
), Na której można$.ajax
przesłać pocztą lub pobrać.(&)
ten sposób oddzielające atrybuty. Teraz otrzymasz atrybut1 = wartość, atrybut2 = wartość, teraz otrzymasz zmienną tablicową php. na przykład$data = array("attribute1=value","attribute2=value")
foreach
on$data
iexplode
the(=)
, aby można było oddzielić atrybut od wartości, i upewnij się,urldecode
że wartość jest konwertowana zserializowanych wartości na wartość, której potrzebujesz, i wstaw atrybut i jego wartość do nowej zmiennej tablicowej, która przechowuje atrybut i wartość serializowanego ciągu.Daj mi znać, jeśli potrzebujesz więcej wyjaśnień.
źródło
Możesz użyć tej funkcji:
Jak tego użyć
źródło