[javascript] JQuery로 GET 및 POST 변수를 얻는 방법?

어떻게 간단하게받을 수 있나요 GETPOSTJQuery와 함께 값?

내가 원하는 것은 다음과 같습니다.

$('#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 매개 변수의 경우 $_POSTJSON 형식 의 객체를 <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); ?>;

참고 : 내장 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);


답변

.getUrlParams 라는 GET 매개 변수를 가져 오는 jQuery 용 플러그인이 있습니다.

POST의 경우 유일한 해결책은 Moran이 제안한 것처럼 PHP를 사용하여 POST를 자바 스크립트 변수로 에코하는 것입니다.


답변

좋은 오래된 PHP를 사용하지 않는 이유는 무엇입니까? 예를 들어 GET 매개 변수 ‘target’을 받았다고 가정 해 보겠습니다.

function getTarget() {
    var targetParam = "<?php  echo $_GET['target'];  ?>";
    //alert(targetParam);
}


답변

또는 http://plugins.jquery.com/project/parseQuery를 사용할 수 있습니다. 대부분의 것보다 작으며 (최소 449 바이트) 이름-값 쌍을 나타내는 개체를 반환합니다.


답변

서버 측 언어를 사용하면 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 :
}

도움이 되었기를 바랍니다. 😉