Для параметров GET вы можете получить их из 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"]);
Для параметров POST вы можете сериализовать $_POST
объект в формате JSON в <script>
тег:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
Пока вы занимаетесь этим (делаете что-то на стороне сервера), вы также можете собирать параметры GET на PHP:
var $_GET = <?php echo json_encode($_GET); ?>;
Примечание. Для использования встроенной json_encode
функции вам потребуется PHP версии 5 или выше .
Обновление: вот более общая реализация:
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);
Есть плагин для jQuery для получения параметров GET под названием .getUrlParams
Для POST единственным решением является отображение POST в переменной javascript с использованием PHP, как предложил Моран.
источник
почему бы не использовать старый добрый PHP? например, предположим, что мы получили параметр GET 'target':
источник
Или вы можете использовать этот http://plugins.jquery.com/project/parseQuery , он меньше большинства (минимизированный 449 байт), возвращает объект, представляющий пары имя-значение.
источник
С любым серверным языком вам нужно будет передать переменные POST в javascript.
.СЕТЬ
Только будьте осторожны с пустыми значениями. Если переменная, которую вы пытаетесь создать, на самом деле пуста, вы получите синтаксическую ошибку javascript. Если вы знаете, что это строка, вам следует заключить ее в кавычки. Если это целое число, вы можете проверить, существует ли оно на самом деле, прежде чем записывать строку в javascript.
источник
Вы можете попробовать плагин Query String Object для jQuery.
источник
Здесь есть что-то, чтобы собрать все
GET
переменные в глобальный объект, процедура, оптимизированная за несколько лет. С появлением jQuery теперь кажется целесообразным хранить их в самом jQuery, я проверяю с Джоном возможную базовую реализацию.Пример использования:
Надеюсь это поможет. ;)
источник
Плагины jQuery кажутся хорошими, но мне нужна была быстрая функция js для анализа параметров get. Вот что я нашел.
http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
источник
Если ваш $ _GET многомерный, это может быть то, что вам нужно:
источник
просто, но все же полезно получить переменные / значения из URL:
Я нашел это где-то в Интернете, только что исправил несколько ошибок
источник
Используйте следующую функцию:
и получить доступ к переменным, как
vars['index']
где'index'
- имя переменной get.источник
http://foo.com/?a=b#bar
. Он считает, чтоb#bar
это ценностьa
.замените VARIABLE_KEY ключом переменной, чтобы получить ее значение
источник
Для записи я хотел узнать ответ на этот вопрос, поэтому использовал метод PHP:
Таким образом, весь мой javascript / jquery, который запускается после этого, может получить доступ ко всему в jGets. Мне кажется, это красивое элегантное решение.
источник
Мой подход:
источник