Parametry GET można pobrać z document.location.search
:
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
document.write($_GET["test"]);
W przypadku parametrów POST można serializować $_POST
obiekt w formacie JSON do <script>
tagu:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
Podczas gdy jesteś na tym (robiąc rzeczy po stronie serwera), możesz również zebrać parametry GET w PHP:
var $_GET = <?php echo json_encode($_GET); ?>;
Uwaga: aby korzystać z wbudowanej json_encode
funkcji, potrzebujesz PHP w wersji 5 lub nowszej .
Aktualizacja: Oto bardziej ogólna implementacja:
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var $_GET = getQueryParams(document.location.search);
Istnieje wtyczka do jQuery, która pobiera parametry GET o nazwie .getUrlParams
W przypadku POST jedynym rozwiązaniem jest powtórzenie testu POST do zmiennej javascript za pomocą PHP, jak sugerował Moran.
źródło
dlaczego nie użyć starego dobrego PHP? na przykład, powiedzmy, że otrzymujemy parametr GET „target”:
źródło
Lub możesz użyć tego http://plugins.jquery.com/project/parseQuery , jest mniejszy niż większość (zminimalizowane 449 bajtów), zwraca obiekt reprezentujący pary nazwa-wartość.
źródło
W przypadku dowolnego języka po stronie serwera będziesz musiał emitować zmienne POST do javascript.
.NETTO
Uważaj tylko na puste wartości. Jeśli zmienna, którą próbujesz wyemitować, jest w rzeczywistości pusta, pojawi się błąd składni JavaScript. Jeśli wiesz, że to ciąg, powinieneś zawinąć go w cudzysłów. Jeśli jest to liczba całkowita, przed zapisaniem wiersza do javascript możesz przetestować, czy rzeczywiście istnieje.
źródło
Możesz wypróbować wtyczkę Query String Object dla jQuery.
źródło
Oto coś, co pozwoli zebrać wszystkie
GET
zmienne w obiekcie globalnym, procedura zoptymalizowana przez kilka lat. Od czasu powstania jQuery wydaje się właściwe przechowywanie ich w samym jQuery, sprawdzam z Johnem potencjalną implementację jądra.Przykładowe użycie:
Mam nadzieję że to pomoże. ;)
źródło
Wtyczki jQuery wydają się fajne, ale potrzebowałem szybkiej funkcji js do analizowania parametrów get. Oto co znalazłem.
http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
źródło
Jeśli Twój $ _GET jest wielowymiarowy, może to być to, czego chcesz:
źródło
proste, ale przydatne do pobierania zmiennych / wartości z adresu URL:
Znalazłem to gdzieś w internecie, właśnie naprawiłem kilka błędów
źródło
Użyj następującej funkcji:
i uzyskaj dostęp do zmiennych, tak jak
vars['index']
gdzie'index'
jest nazwa zmiennej get.źródło
http://foo.com/?a=b#bar
. Uważa, żeb#bar
jest to wartośća
.zamień VARIABLE_KEY na klucz zmiennej, aby uzyskać jej wartość
źródło
Tak dla przypomnienia, chciałem poznać odpowiedź na to pytanie, więc użyłem metody PHP:
W ten sposób wszystkie moje uruchomione javascript / jquery będą miały dostęp do wszystkiego w jGets. Czuję, że to ładne, eleganckie rozwiązanie.
źródło
Moje podejście:
źródło