উত্তর:
window.location.hrefএটি ব্যবহার করে কোনও পোষ্ট অনুরোধ পাঠানো সম্ভব নয় not
আপনাকে যা করতে হবে তা হ'ল formএটিতে ডেটা ফিল্ড সহ একটি ট্যাগ সেট আপ করা, actionফর্মটির methodবৈশিষ্ট্যটি ইউআরএলে সেট করুন এবং বৈশিষ্ট্যটি POST এ সেট করুন, তারপরে ট্যাগটিতে submitপদ্ধতিটি কল করুন form।
formসব কিছু একসাথে রাখতে পারবেন না , তাই সবকিছু স্বয়ংক্রিয়ভাবে একসাথে প্রেরণ করা যায়?
$("#myForm").submit()। ফর্ম- যা অদৃশ্য হয়ে থাকবে এবং কেবলমাত্র আপনার ক্লায়েন্টের সাইড কোড থেকে মান জমা দেওয়ার জন্য ব্যবহৃত হবে, ব্যবহারকারীর ইনপুট নয়- প্রদর্শিত হবে না অন্যথায় ব্যবহৃত হবে না এবং পৃষ্ঠাটি রিফ্রেশ হবে।
আপনার এইচটিএমএলে একটি ফর্ম যুক্ত করুন: এরকম কিছু:
<form style="display: none" action="/the/url" method="POST" id="form">
<input type="hidden" id="var1" name="var1" value=""/>
<input type="hidden" id="var2" name="var2" value=""/>
</form>
এবং এই মানগুলি পূরণ করতে JQuery ব্যবহার করুন (অবশ্যই আপনি অনুরূপ কিছু করতে জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন)
$("#var1").val(value1);
$("#var2").val(value2);
তারপরে অবশেষে ফর্মটি জমা দিন
$("#form").submit();
সার্ভারের পাশ দিয়ে আপনি যাচাই করে আপনার প্রেরিত ডেটা পেতে সক্ষম হবেন var1এবং এটি var2কীভাবে করবেন তা আপনি কী সার্ভার-সাইডের ভাষা ব্যবহার করছেন তার উপর নির্ভর করে।
এই ফাইলটি ব্যবহার করুন: "jquery.redirect.js"
$("#btn_id").click(function(){
$.redirect(http://localhost/test/test1.php,
{
user_name: "khan",
city : "Meerut",
country : "country"
});
});
});
যেমনটি অন্যান্য উত্তরে বলা হয়েছিল যে উইন্ডো.লোকেশন.href ব্যবহার করে কোনও পোষ্ট অনুরোধ করার কোনও উপায় নেই, এটি করার জন্য আপনি একটি ফর্ম তৈরি করতে এবং তা সঙ্গে সঙ্গে জমা দিতে পারেন submit
আপনি এই ফাংশনটি ব্যবহার করতে পারেন:
function postForm(path, params, method) {
method = method || 'post';
var form = document.createElement('form');
form.setAttribute('method', method);
form.setAttribute('action', path);
for (var key in params) {
if (params.hasOwnProperty(key)) {
var hiddenField = document.createElement('input');
hiddenField.setAttribute('type', 'hidden');
hiddenField.setAttribute('name', key);
hiddenField.setAttribute('value', params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
postForm('mysite.com/form', {arg1: 'value1', arg2: 'value2'});
সংক্ষিপ্ত উত্তর: না। window.location.hrefPOST ডেটা পাস করতে সক্ষম নয়।
কিছুটা সন্তোষজনক উত্তর: আপনি আপনার ফর্মের সমস্ত ডেটা ক্লোন করে জমা দিতে এই ফাংশনটি ব্যবহার করতে পারেন।
var submitMe = document.createElement("form");
submitMe.action = "YOUR_URL_HERE"; // Remember to change me
submitMe.method = "post";
submitMe.enctype = "multipart/form-data";
var nameJoiner = "_";
// ^ The string used to join form name and input name
// so that you can differentiate between forms when
// processing the data server-side.
submitMe.importFields = function(form){
for(k in form.elements){
if(input = form.elements[k]){
if(input.type!="submit"&&
(input.nodeName=="INPUT"
||input.nodeName=="TEXTAREA"
||input.nodeName=="BUTTON"
||input.nodeName=="SELECT")
){
var output = input.cloneNode(true);
output.name = form.name + nameJoiner + input.name;
this.appendChild(output);
}
}
}
}
submitMe.importFields(form_element);যে তিনটি ফর্ম জমা দিতে চান তার প্রতিটি করুন। <input name="email">এ <form name="login">, পেশ নাম হবে login_name। nameJoinerভেরিয়েবল ব্যতীত অন্য কিছুতে পরিবর্তন করতে পারেন_ সুতরাং এটি আপনার ইনপুট নামকরণ প্রকল্পের সাথে বিরোধ নয়।submitMe.submit();এটি এই হিসাবে সহজ
$.post({url: "som_page.php",
date: { data1: value1, data2: value2 }
).done(function( data ) {
$( "body" ).html(data);
});
});
আমার অ্যাপ্লিকেশনটির স্ক্রিন লক তৈরি করতে আমাকে এটি সমাধান করতে হয়েছিল যেখানে আমাকে ব্যবহারকারী হিসাবে সংবেদনশীল ডেটা এবং যেখানে তিনি কাজ করছিলেন তা পাস করতে হয়েছিল। তারপরে একটি ফাংশন তৈরি করুন যা এই কোডটি কার্যকর করে
done()ফাংশন সেটেwindow.location.href
আপনি কি কেবল স্থানীয় / সেশন স্টোরেজ ব্যবহার করে বিবেচনা করেছেন? - বা- আপনি যা নির্মাণ করছেন তার জটিলতার উপর নির্ভর করে; আপনি এমনকি indexDB ব্যবহার করতে পারেন।
দ্রষ্টব্য :
Local storageএবং indexDBসুরক্ষিত নয় - সুতরাং আপনি যে কোনও সংবেদনশীল / ব্যক্তিগত ডেটা (যেমন নাম, ঠিকানা, ইমেল ঠিকানা, ডিওবি ইত্যাদি) সংরক্ষণ করা এড়াতে চান।
Session Storage সংবেদনশীল যে কোনও কিছুর জন্য এটি আরও সুরক্ষিত বিকল্প, এটি কেবলমাত্র উত্সটিতে অ্যাক্সেসযোগ্য যা আইটেমগুলি সেট করে এবং ব্রাউজার / ট্যাব বন্ধ হওয়ার সাথে সাথে এটি পরিষ্কার হয়ে যায়।
IndexDB কিছুটা বেশি [তবে বেশি কিছু নয়] জটিল এবং এটি একটি a 30MB noSQL database প্রতিটি ব্রাউজারে অন্তর্নির্মিত (তবে ব্যবহারকারী যদি অনিচ্ছুক হন তবে এটি মূলত সীমাহীন হতে পারে) -> পরের বার আপনি গুগল ডক্স ব্যবহার করছেন, আপনাকে দেবটুলগুলি খুলুন -> অ্যাপ্লিকেশন -> সূচক ডিবি এবং একটি শিখর নিতে। [স্পয়লার সতর্কতা: এটি এনক্রিপ্ট করা হয়েছে]।
উপর দৃষ্টি নিবদ্ধ করা Localএবং Session Storage; এগুলি উভয়ই মরার ব্যবহার সহজ:
// To Set
sessionStorage.setItem( 'key' , 'value' );
// e.g.
sessionStorage.setItem( 'formData' , { name: "Mr Manager", company: "Bluth's Frozen Bananas", ... } );
// Get The Data
const fromData = sessionStorage.getItem( 'key' );
// e.g. (after navigating to next location)
const fromData = sessionStorage.getItem( 'formData' );
// Remove
sessionStorage.removeItem( 'key' );
// Remove _all_ saved data sessionStorage
sessionStorage.clear( );
যদি আপনার জিনিসটি সহজ না হয় - তবে আপনি রাস্তায় যেতে চান এবং একসাথে একটি ভিন্ন পদ্ধতির চেষ্টা করতে চান -> আপনি সম্ভবত একটি shared web workerলাথি ব্যবহার করতে পারেন ...
আপনি পাসের পরিবর্তে জিইটি ব্যবহার করতে পারেন, তবে গুরুত্বপূর্ণ মানগুলির জন্য এই পদ্ধতিটি ব্যবহার করবেন না,
function passIDto(IDval){
window.location.href = "CustomerBasket.php?oridd=" + IDval ;
}
গ্রাহকব্যাসকেট.এফপিতে
<?php
$value = $_GET["oridd"];
echo $value;
?>
window.location.hrefনতুন URL এর জন্য জিইটি অনুরোধ করে, পোষ্ট নয়।