PDA

View Full Version : سوال: ارسال پارامتر در URL بدون نمایش آن



mahnaz0098
دوشنبه 07 مرداد 1392, 12:24 عصر
سلام
من براي انتقال به يك صفحه ي جدید از window.location.href استفاده میکنم . چطور میتونم مقداری رو به صفحه جدید ارسال کنم بدون اینکه این مقادیر در URL نمایش داده شود.


window.location.href = "UI/Pages/Products.aspx?user=" + a + "&pass=" + b;

afshin9032
دوشنبه 07 مرداد 1392, 19:02 عصر
روش های ممکن 1- استفاده از فرم و ارسال به صورت POST به صفحه مورد نظر و یا 2 - استفاده از cookie ها می باشد

fakhravari
دوشنبه 07 مرداد 1392, 20:58 عصر
بستگی داره روشهای ساده که همون post که شما میخواهید در چه زبونی استفاده کنید.
html?
asp?
php?
اگه asp میخواهی بگو بزارم

mahnaz0098
چهارشنبه 09 مرداد 1392, 07:46 صبح
فقط با html و jquery کار میکنم

مقادیر یه فرم html رو با این دستورات میگیرم :


a = $('#Login_Username').val();


b = $('#Login_Password').val();


و در صفحه ی دیگه همین مقادیر رو با دستورات زیر از URL به دست میارم :



var parameters = location.search.substring(1).split("&");

var temp = parameters[0].split("=");

username = unescape(temp[1]);

var temp = parameters[1].split("=");
password = unescape(temp[1]);



از asp و php استفاده نمیکنم .

fakhravari
چهارشنبه 09 مرداد 1392, 10:54 صبح
سمت کلاینت فکر نکنم بشه با post چیزی خوند.:متفکر:

jalil_gh
چهارشنبه 09 مرداد 1392, 12:20 عصر
فقط با html و jquery کار میکنم

مقادیر یه فرم html رو با این دستورات میگیرم :


a = $('#Login_Username').val();


b = $('#Login_Password').val();


و در صفحه ی دیگه همین مقادیر رو با دستورات زیر از URL به دست میارم :



var parameters = location.search.substring(1).split("&");

var temp = parameters[0].split("=");

username = unescape(temp[1]);

var temp = parameters[1].split("=");
password = unescape(temp[1]);



از asp و php استفاده نمیکنم .

شما میتونید مقادیر a و b رو تو یه کوکی ذخیره کنید و تو صفحه بعد اونارو استخراج کنید.

fakhravari
چهارشنبه 09 مرداد 1392, 13:41 عصر
http://www.w3schools.com/js/js_cookies.asp

mehdi.mousavi
چهارشنبه 09 مرداد 1392, 21:27 عصر
سلام من براي انتقال به يك صفحه ي جدید از window.location.href استفاده میکنم . چطور میتونم مقداری رو به صفحه جدید ارسال کنم بدون اینکه این مقادیر در URL نمایش داده شود.

window.location.href = "UI/Pages/Products.aspx?user=" + a + "&pass=" + b;


سلام.
کافیه تا بدین شکل عمل کنید:

$(function(){
$('<form/>', {
action: 'dest-form.htm',
method: 'post'
}).prepend($('<input/>', {
'name': 'param1',
'value': 'param1_value',
'type': 'hidden'
})).appendTo('body')
.submit();
});

بدین ترتیب پارامتر param1 با مقدار param1_value به صفحه dest-form.htm پست میشه.

موفق باشید.

fakhravari
چهارشنبه 09 مرداد 1392, 23:16 عصر
اقای موسوی مقدار param1 چون به روش post ارسال میکنیم چطوری دریافت میکنیم در صفحه dest-form.htm

mahnaz0098
پنج شنبه 10 مرداد 1392, 09:29 صبح
برای ارسال چند تا مقدار چطور باید عمل کنم؟؟ حتما باید برای هرکدوم قسمت زیر تکرار بشه یا امکان ارسال چند مقدار با هم هست ؟؟؟



action: 'dest-form.htm',
method: 'post'
}).prepend($('<input/>', {
'name': 'param1',
'value': 'param1_value',
'type': 'hidden'
})).appendTo('body')


وسوال دوم اینکه دریافتش در صفحه ی دیگه چطور انجام میشه؟؟

mehdi.mousavi
پنج شنبه 10 مرداد 1392, 19:33 عصر
اقای موسوی مقدار param1 چون به روش post ارسال میکنیم چطوری دریافت میکنیم در صفحه dest-form.htm

سلام.
دریافت اطلاعات پست شده باید توسط یه تکنولوژی server-side انجام بگیره، چون دریافت اونها از طریق JavaScript میسر نیست (البته سوال هم در ارتباط با ارسال پارامترها به صفحه دیگه بوده و نه دریافت اونها). :)


برای ارسال چند تا مقدار چطور باید عمل کنم؟؟ حتما باید برای هرکدوم قسمت زیر تکرار بشه یا امکان ارسال چند مقدار با هم هست ؟؟؟ وسوال دوم اینکه دریافتش در صفحه ی دیگه چطور انجام میشه؟؟

البته که نباید کد رو تکرار کنید. بطور نمونه، می تونید با نوشتن یه jQuery Plugin چند خطی، این کارو بدین شکل انجام بدید:

$.fn.createHiddenFieldAndPrepend = function (arr) {
for (var idx = 0; idx < arr.length; idx += 2) {
var elm = $('<input>', { name: arr[idx], value: arr[idx + 1], type: 'hidden' });
this.prepend(elm);
}
return this;
};


در اینجا، من متود جدیدی به jQuery اضافه کردم (تحت نام createHiddenFieldAndPrepend) که آرایه ای از نام و مقدر هر فیلد (به ترتیب) میگیره، و اونها رو به فرم مورد نظر اضافه می کنه. در نتیجه، برای ارسال دو پارامتر param1 و param2 با مقادیر param1_value و param2_value کافیه تا بدین شکل عمل کنیم:

$('<form/>', {
action: 'dest-form.htm',
method: 'post'
}).createHiddenFieldAndPrepend(['param1', 'param1_value', 'param2', 'param2_value'])
.appendTo('body')
.submit();


در مورد سوال دوم هم در ابتدا پاسخ دادم. دریافت اطلاعات پست شده توسط JavaScript میسر نیست.

موفق باشید.

pishva62
یک شنبه 13 بهمن 1392, 13:16 عصر
اقا سلام
ما می خواهیم مقادیر
var x = ?
را از طریق ajax
به یک فرم دیگر مثلا 123.php
ارسال کنیم
میشه راهنمایی بفرمایید چطوری اینکار ممکنه ودر ضمن این داده ها درون فرم نیستند