JQuery로 GET 및 POST 변수를 가져오는 방법은 무엇입니까?
어떻게 하면 쉽게 얻을 수 있습니까?GET
그리고.POST
값을 입력하시겠습니까?
제가 하고 싶은 일은 다음과 같습니다.
$('#container-1 > ul').tabs().tabs('select', $_GET('selectedTabIndex'));
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 형식의 개체를 a로<script>
태그:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
서버 측에서 작업하는 동안 PHP에서 GET 매개 변수를 수집할 수도 있습니다.
var $_GET = <?php echo json_encode($_GET); ?>;
참고: 기본 제공 기능을 사용하려면 PHP 버전 5 이상이 필요합니다.json_encode
기능.
업데이트: 다음은 보다 일반적인 구현입니다.
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);
.getUrlParams라는 GET 매개 변수를 얻기 위한 jQuery용 플러그인이 있습니다.
POST의 유일한 해결책은 Moran이 제안한 것처럼 PHP를 사용하여 POST를 Javascript 변수로 반향시키는 것입니다.
또는 http://plugins.jquery.com/project/parseQuery, 를 사용하여 대부분의 이름과 값 쌍을 나타내는 개체를 반환합니다.
왜 좋은 오래된 PHP를 사용하지 않습니까? 예를 들어, 우리가 GET 매개 변수 'target'을 받는다고 하자:
function getTarget() {
var targetParam = "<?php echo $_GET['target']; ?>";
//alert(targetParam);
}
단순하게 받아들여라.
값을 가져올 변수의 키로 VEARBLE_KEY를 바꿉니다.
var get_value = window.location.href.match(/(?<=VARIABLE_KEY=)(.*?)[^&]+/)[0];
서버 측 언어의 경우 POST 변수를 Javascript로 내보내야 합니다.
.그물
var my_post_variable = '<%= Request("post_variable") %>';
빈 값에 주의하십시오.내보내려는 변수가 실제로 비어 있으면 Javascript 구문 오류가 발생합니다.문자열인 줄 알면 따옴표로 묶어야 합니다.정수인 경우 줄을 javascript에 쓰기 전에 실제로 존재하는지 테스트할 수 있습니다.
jQuery용 Query String Object 플러그인을 사용해 볼 수 있습니다.
여기 모든 것을 모을 수 있는 것이 있습니다.GET
몇 년에 걸쳐 최적화된 루틴인 전역 개체의 변수.jQuery가 등장한 이후로 jQuery 자체에 저장하는 것이 적절해 보입니다. John과 함께 잠재적인 핵심 구현에 대해 확인하고 있습니다.
jQuery.extend({
'Q' : window.location.search.length <= 1 ? {}
: function(a){
var i = a.length,
r = /%25/g, // Ensure '%' is properly represented
h = {}; // (Safari auto-encodes '%', Firefox 1.5 does not)
while(i--) {
var p = a[i].split('=');
h[ p[0] ] = r.test( p[1] ) ? decodeURIComponent( p[1] ) : p[1];
}
return h;
}(window.location.search.substr(1).split('&'))
});
사용 예:
switch ($.Q.event) {
case 'new' :
// http://www.site.com/?event=new
$('#NewItemButton').trigger('click');
break;
default :
}
이것이 도움이 되길 바랍니다. ;)
jQuery 플러그인은 좋아 보이지만 get params를 구문 분석하기 위한 빠른 js 함수가 필요했습니다.여기 제가 찾은 것이 있습니다.
$_GET이 다차원적인 경우 다음과 같이 하십시오.
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
//handling for multidimensional arrays
if(decode(arguments[1]).indexOf("[]") > 0){
var newName = decode(arguments[1]).substring(0, decode(arguments[1]).length - 2);
if(typeof $_GET[newName] == 'undefined'){
$_GET[newName] = new Array();
}
$_GET[newName].push(decode(arguments[2]));
}else{
$_GET[decode(arguments[1])] = decode(arguments[2]);
}
});
단순하지만 URL에서 변수/값을 가져오는 데 사용할 수 있습니다.
function getUrlVars() {
var vars = [], hash, hashes = null;
if (window.location.href.indexOf("?") && window.location.href.indexOf("&")) {
hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
} else if (window.location.href.indexOf("?")) {
hashes = window.location.href.slice(window.location.href.indexOf('?') + 1);
}
if (hashes != null) {
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars[hash[0]] = hash[1];
}
}
return vars;
}
인터넷 어딘가에서 찾았어요, 그냥 몇 가지 버그만 고쳤어요.
다음 기능을 사용합니다.
var splitUrl = function() {
var vars = [], hash;
var url = document.URL.split('?')[0];
var p = document.URL.split('?')[1];
if(p != undefined){
p = p.split('&');
for(var i = 0; i < p.length; i++){
hash = p[i].split('=');
vars.push(hash[1]);
vars[hash[0]] = hash[1];
}
}
vars['url'] = url;
return vars;
};
변수에 수 있습니다.vars['index']
'index'
의 이름입니다.get 파일 이름입니다.
내 접근 방식:
var urlParams;
(window.onpopstate = function () {
var match,
pl = /\+/g, Regex for replacing addition symbol with a space
search = /([^&=]+)=?([^&]*)/g,
decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
query = window.location.search.substring(1);
urlParams = {};
while (match = search.exec(query))
urlParams[decode(match[1])] = decode(match[2]);
})();
참고로, 저는 이 질문에 대한 답을 알고 싶어서 PHP 방법을 사용했습니다.
<script>
var jGets = new Array ();
<?
if(isset($_GET)) {
foreach($_GET as $key => $val)
echo "jGets[\"$key\"]=\"$val\";\n";
}
?>
</script>
그러면 이 이후에 실행되는 모든 Javascript/jquery가 jGets의 모든 것에 액세스할 수 있습니다.그것은 제가 느끼는 멋지고 우아한 해결책입니다.
언급URL : https://stackoverflow.com/questions/439463/how-to-get-get-and-post-variables-with-jquery
'programing' 카테고리의 다른 글
jQuery를 사용하여 iframe 다시 로드 (0) | 2023.08.27 |
---|---|
ASP에서 jQuery로 'WebMethod' 호출.NET 웹 양식 (0) | 2023.08.27 |
Access-Control-Allow-Origin: *을(를) 사용하여 도메인 간 Ajax 호출을 허용하는 브라우저는 무엇입니까? (0) | 2023.08.27 |
jQuery를 사용하여 텍스트 문자열을 찾으시겠습니까? (0) | 2023.08.27 |
판다 데이터 프레임의 마지막 데이터 행을 삭제하는 방법 (0) | 2023.08.22 |