আমি কেবল পেতে পারি GETএবং POSTjQuery সঙ্গে মান?
আমি যা করতে চাই তা হ'ল:
$('#container-1 > ul').tabs().tabs('select', $_GET('selectedTabIndex'));
আমি কেবল পেতে পারি GETএবং POSTjQuery সঙ্গে মান?
আমি যা করতে চাই তা হ'ল:
$('#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জেএসওএন ফর্ম্যাটে অবজেক্টটিকে একটি <script>ট্যাগে সিরিয়ালাইজ করতে পারেন :
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
আপনি এটির সময়ে (সার্ভারের পক্ষের জিনিসগুলি করছেন), আপনি পিএইচপি-তেও জিইটি প্যারামিটারগুলি সংগ্রহ করতে পারেন:
var $_GET = <?php echo json_encode($_GET); ?>;
দ্রষ্টব্য: অন্তর্নির্মিত json_encodeফাংশনটি ব্যবহার করার জন্য আপনার পিএইচপি সংস্করণ 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 প্যারামগুলি পাওয়ার জন্য একটি প্লাগইন রয়েছে
পোষ্টের জন্য একমাত্র সমাধান হ'ল পিওএসটি ব্যবহার করে জাভাস্ক্রিপ্ট ভেরিয়েবলের মধ্যে পোষ্টের প্রতিধ্বনি করা হবে যেমন মোড়ান প্রস্তাবিত হয়েছিল।
কেন পুরাতন পিএইচপি ব্যবহার করবেন না? উদাহরণস্বরূপ, আসুন আমরা বলতে পারি যে আমরা একটি জিইটি প্যারামিটার 'লক্ষ্য' পেয়েছি:
function getTarget() {
var targetParam = "<?php echo $_GET['target']; ?>";
//alert(targetParam);
}
অথবা আপনি এটি ব্যবহার করতে পারেন http://plugins.jquery.com/project/parseQuery , এটি বেশিরভাগের চেয়ে ছোট (449 বাইটযুক্ত), নাম-মান জুটির প্রতিনিধিত্ব করে এমন একটি বস্তু প্রদান করে।
যে কোনও সার্ভার-সাইড ভাষার সাথে, আপনাকে জাভাস্ক্রিপ্টে পোষ্ট ভেরিয়েবলগুলি ছড়িয়ে দিতে হবে।
.NET
var my_post_variable = '<%= Request("post_variable") %>';
খালি মূল্যবোধ সম্পর্কে সতর্কতা অবলম্বন করুন। আপনি যে ভেরিয়েবলটি নির্গমনের চেষ্টা করছেন তা আসলে শূন্য থাকলে আপনি জাভাস্ক্রিপ্ট সিনট্যাক্স ত্রুটি পাবেন। যদি আপনি জানেন যে এটি একটি স্ট্রিং, আপনার এটি উদ্ধৃতিতে মোড়ানো উচিত। যদি এটি একটি পূর্ণসংখ্যা হয়, আপনি জাভাস্ক্রিপ্টে লাইনটি লেখার আগে এটি প্রকৃতপক্ষে উপস্থিত কিনা তা পরীক্ষা করে দেখতে চাইতে পারেন।
আপনি jQuery এর জন্য ক্যোরি স্ট্রিং অবজেক্ট প্লাগইন চেষ্টা করতে পারেন ।
GETবিশ্বব্যাপী অবজেক্টে সমস্ত ভেরিয়েবল সংগ্রহ করার জন্য এখানে কিছু বিষয় রয়েছে, বেশ কয়েক বছর ধরে এটি একটি রুটিন অনুকূল। JQuery এর উত্থানের পর থেকে এখন এগুলি jQuery নিজেই সংরক্ষণ করা উপযুক্ত বলে মনে হচ্ছে, একটি সম্ভাব্য মূল বাস্তবায়নের বিষয়ে জনের সাথে চেক করছি।
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 paras কে পার্স করার জন্য একটি দ্রুত js ফাংশন। আমি যা পেয়েছি তা এখানে।
যদি আপনার G _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]);
}
});
ইউআরএল থেকে ভারস / মান পেতে সহজ, তবে তবুও ব্যবহারযোগ্য:
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'পেতে পরিবর্তনশীল নাম।
http://foo.com/?a=b#bar। এটি b#barএর মান বলে মনে করে a।
কেবল রেকর্ডের জন্য, আমি এই প্রশ্নের উত্তর জানতে চেয়েছিলাম, তাই আমি একটি পিএইচপি পদ্ধতি ব্যবহার করেছি:
<script>
var jGets = new Array ();
<?
if(isset($_GET)) {
foreach($_GET as $key => $val)
echo "jGets[\"$key\"]=\"$val\";\n";
}
?>
</script>
এরপরে চালিত আমার সমস্ত জাভাস্ক্রিপ্ট / জ্যাকেই জেজেটসের সমস্ত কিছু অ্যাক্সেস করতে পারে। এটি একটি দুর্দান্ত মার্জিত সমাধান আমি অনুভব করি।
আমার পদ্ধতির:
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]);
})();