PDA

View Full Version : حذف query string بدون رفرش صفحه



aminmorteza
چهارشنبه 24 آبان 1391, 22:20 عصر
سلام دوستان من میخوام یه تگ div رو فقد یکبار به کاربر نمایش بدم این کار رو با کوئری استرینگ انجام دادم مثلا ادرس www.example.ir?userStatus=1 که با جاوااسکریپت من چک مینکم که کوئری استرینگ وجود داره یا نه اگه وجود داشت اون رو به کاربر نمایش میدم فقد یه مشکلی وجود داره اگه کاربر بره به یک صفحه دیگه و دوباره با کلیک رویه back مرورگر برگرده به همون صفحه اون تگ div دوباره بهش نمایش داده میشه میخوام وقتی که تگ div به کاربر نمایش داده شد عبارت UserStatus = 1 حذف بشه و صفحه رفرش نشه یا اینکه با# = UserStatusجایگزین بشه.

masudafsar
شنبه 27 آبان 1391, 21:30 عصر
چرا از متد POST استفاده نمی کنی؟
نحوه رسیدن کاربر به این صفحه چطوریه؟ از طریق لینک وارد میشه، از یه فرم به اینجا میرسه؟

mrgraphy
یک شنبه 28 آبان 1391, 00:48 صبح
سلام دوست عزیز.
تاحالا با چنین چیزی برخورد نکرده بودم اما یه سرچ کردم یه چیزایی بدست اومد.
این لینک رو نگاه کن چندتتا روش رو برای این کار گذاشتن.
امیدوارم نتیجه بگیرید.
موفق باشید.
http://stackoverflow.com/questions/2540969/remove-querystring-from-url

hakan648
یک شنبه 28 آبان 1391, 13:16 عصر
سلام
تغییر Url صفحه بدون رفرش شدن ، فعلا در همه ی مرورگرها پشتیبانی نمیشه و بهترین راه ، استفاده از مقدار hash است ( # و مقادیر بعد از آن ) ، به همین دلیل گوگل هم به همین شکل Url صفحه رو تغییر میده .

پس نمیتونید به این شکل مقدار QueryString رو حذف کنید ، بهتره به دنبال راه های مطمئن تر و بهتر باشید.

aminmorteza
دوشنبه 29 آبان 1391, 22:09 عصر
ممنون از پاسخ هایی که دادید ببینید من یک فرم لاگین ایجاد کردم و میخوام اگه کاربر تویه سایت لاگین نکرده فقد اون رو یکبار اون هم در موقع ورود به سایت بهش نمایش بدم و دیگه بهش نمایش داده نشود نحوه فراخونی فرم لاگین هم با جی کوئری هستش ممنون میشم راه حلی براش معرفی کنید. من این کار رو با query string انجام دادم که مشکل بالا رو داره ممکنه فرم لاگین دوباره به کاربر نمایش داده بشه فقد میخوام یکبار بهش نمایش داده بشه و وقتی اون رو می بنده دیگه بهش نمایش داده نشه ممنون از شما

masudafsar
سه شنبه 30 آبان 1391, 00:06 صبح
می تونی با java script تویه کوکی ها ذخیره کنی که کاربر این فرم رو یک بار دیده و در بارگذاری بعدی دیگه فرم رو نبینه.
کد زیر برای ساختن یک کوکی هست :


function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

و کد زیر از کوکی می خونه:

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

این دو تا رو بنا به نیاز خودت تغییر بده، ولی فک کنم با همین ها کارت راه بیوفته.