PDA

View Full Version : حرفه ای: ارسال اطلاعات به يك صفحه ديگر (post,get)



alonemm
سه شنبه 14 دی 1389, 18:49 عصر
باسلام:
من توي فرم مثل پس از انجام ثبت نام كاربر ميخوام يك سري اطلاعات به يك url ارسال بشه.
به صورت اتوماتيك. با 2 روش POST,GET .

با تشكر.

parsidev
چهارشنبه 15 دی 1389, 18:35 عصر
سالم
شما قبلا این سوالو پرسیده بودین و به جواب هم داده شد.
ظاهرا دنبال soap نرفتین... کمی سرچ کمکتون می کنه
با احترام

ali_mnkt
چهارشنبه 15 دی 1389, 22:36 عصر
باسلام:
من توي فرم مثل پس از انجام ثبت نام كاربر ميخوام يك سري اطلاعات به يك url ارسال بشه.
به صورت اتوماتيك. با 2 روش POST,GET .

با تشكر.

دوست عزیز باید در تگ form یکسری input از نوع text قرار بدی و action اون فرم رو آدرس اون url بذار وmethod b رو بذار post و یک input از نوع submit بذار واسه ارسال این اطلاعات

L u k e
چهارشنبه 15 دی 1389, 22:43 عصر
post و نمی دونم و get

Dim Url As String = "http://www.google.com/index.php?id=200"
Dim Request As HttpWebRequest = WebRequest.Create(Url)
Dim response1 As HttpWebResponse = Request.GetResponse()
response1.Close()

aminghaderi
پنج شنبه 16 دی 1389, 00:10 صبح
باسلام:
من توي فرم مثل پس از انجام ثبت نام كاربر ميخوام يك سري اطلاعات به يك url ارسال بشه.
به صورت اتوماتيك. با 2 روش POST,GET .

با تشكر.

سلام.
شما حتمی می خواهید از کلاینت به سرور ارسال داشته باشید؟؟؟
اگر چنین است دنبال بحث POSTPACK در Javascript باشید و کافیه یه سرچ در گوگل داشته باشید.
همون طوری که دوستمون آقای ali_mnkt (http://barnamenevis.org/member.php?70760-ali_mnkt) فرمودند.
بعلاوه یه تابع post__Back که باید در داخل اسکریپتی معرفی بشه .
بعد کل عملیات رو جاوااسکریپت مدیریت می کنه.

موفق باشی.

alonemm
پنج شنبه 16 دی 1389, 17:46 عصر
با تشکر از دوستان.
اگه کمی متن بحث رو بخونید ....
من میخوام مثل وقتی که کار بر دکمه ثب رو زد و یک سری عملیات انجام شد نام کاربر هم به صورت مثل همون Query String فرستاده بشه به یک URL مثل
www.majid.com/useractive.aspx?username=user1 (http://www.majid.com/useractive.aspx?username=user1)
و بعد ادامه عملیات کد نوسی در همون باتن انجام بشه.

ali_mnkt
پنج شنبه 16 دی 1389, 22:11 عصر
با تشکر از دوستان.
اگه کمی متن بحث رو بخونید ....
من میخوام مثل وقتی که کار بر دکمه ثب رو زد و یک سری عملیات انجام شد نام کاربر هم به صورت مثل همون Query String فرستاده بشه به یک URL مثل
www.majid.com/useractive.aspx?username=user1 (http://www.majid.com/useractive.aspx?username=user1)
و بعد ادامه عملیات کد نوسی در همون باتن انجام بشه.

دوست عزیز همون طور که گفتم می تونی این کار رو با تگ Form انجام بدی . اگر از Asp استفاده می کنی خیلی راحت می شه ایت کار رو کرد به این صورت که تمام کنترل های برنامه مبدا رو در تگ Form قرار بده بعد تگ فرم یکسری ویژگی داره ازجمله method که نوع انتقال رو معرفی می کنه که شما باید post بذاری , یک ویژگی به نام Action که در اون باید آدرس url ی که می خوای اطلاعات به اون بره رو وارد کنید
تا این مرحله انتقال اطلاعات انجام شده حالا در سمت برنامه گیرنده هم با کد زیر که در page_load می نویسی اطلاعاتی که به صورت post اومده رو می گیره


string traceId = SourcePage.Request.Form["traceId"].ToString();

Slytherin
پنج شنبه 16 دی 1389, 22:41 عصر
برات یه نمونه نوشتم.:چشمک:
تنها کاری که باید انجام بدی اینه که در صفحه Register.html به جای url موجود، آدرس صفحه ای که قراره درخواست بهش ارسال بشه رو بدی...
سوالی در موردش داشتی در خدمتم.

alonemm
چهارشنبه 22 دی 1389, 16:16 عصر
با تشکر از دوستان.
اما من نمیخوام به صفحه مربوطه بروم.
یعنی تو همین صفحه بمونم فقط اطلاعات به سمت صفحه که گفتم فرستاده بشه.

Javad_Darvish_Amiry
چهارشنبه 22 دی 1389, 21:08 عصر
دوست عزیز اگه منظورت رو واضح تر توضیح بدی بهتر هم جواب می گیری. شما میخوای این ارسال رو از سمت کلاینت، و به صورت درخواست ایژکس ارسال کنی یا از سمت سرور. دقیقا بگو میخوای چکار کنی. جون در عین اینکه فرمودید:


اگه کمی متن بحث رو بخونید ....

ولی من شخصا هنوز نگرفتم چی میخوای. اگه بحث دوستان رو هم با دقت بخونی می بینی که اونا هم هر کدوم یه برداشتی از حرفت داشتن. پس نتیجتا شما باید توضیح بهتری ارائه کنی.
البته ببخشید که رک گفتم.
پاینده باشید.

alonemm
پنج شنبه 23 دی 1389, 14:17 عصر
دوست عزیز اگه منظورت رو واضح تر توضیح بدی بهتر هم جواب می گیری. شما میخوای این ارسال رو از سمت کلاینت، و به صورت درخواست ایژکس ارسال کنی یا از سمت سرور. دقیقا بگو میخوای چکار کنی. جون در عین اینکه فرمودید:

ولی من شخصا هنوز نگرفتم چی میخوای. اگه بحث دوستان رو هم با دقت بخونی می بینی که اونا هم هر کدوم یه برداشتی از حرفت داشتن. پس نتیجتا شما باید توضیح بهتری ارائه کنی.
البته ببخشید که رک گفتم.
پاینده باشید.

باسلام:
دوست من اگه در مورد بحثی دانش کافی یا اطلاعاتی ندید نظر ندید و حجم تاپیک رو اضافه نکنید (جزء قوانین سایت هست) با تشکر.

بینید مثل من میخوام یک فرم رو پر کنم بعد یک دکمه رو کلیک کنم و اطلاعاتم هم داخل پایگاه داده ثبت بشه ( در روییداد کلیک دکمه ).
تا انجا درست؟
حالا میخوام در همون رویداد اطلاعات تکس باکس هام هم به یک URL فرستاده بشه.
مثل :
www.mm.com?name=majid (http://www.mm.com?name=majid)
و نمیخوام کاربر به صفحه بالا فرستاده بشه یعنی در همون صفحه ثبت نام بمونه و در پش صفحه (همون روییداد کلیک دکمه ثبت) این اطلاعات فرستاده بشه.
اگه بازهم ناملومه بگید.
:تشویق:

aminghaderi
پنج شنبه 23 دی 1389, 15:10 عصر
دوست من اگه در مورد بحثی دانش کافی یا اطلاعاتی ندید نظر ندید و حجم تاپیک رو اضافه نکنید (جزء قوانین سایت هست) با تشکر.شما که دانش فنی زیادی دارین یه نگاه به پست های دوستمون بنیندازید ببینید کدوم یکی از اونها فاقد محتوای فنی نیستند و به قول شما حجیم کننده تاپیک هستند؟!
بنده شخصا دیشب چند پست از ایشون رو مطالعه کردم ، حقیقتا لذت بردم که اینقدر با ادبیات بسیار زیبا و کمال تواضع راهنمایی می کنند.
و از لحاظ فنی می شه سطح فردی رو در یکی دو پست فهمید که ایشون در سطح بالایی هستند .
و این رو مادام خاطرتون باشه خیلی از دوستان حرفه ای و اساتید تازه با این تالار آشنا می شوند و داخل سایت عضو می شوند و صرفا نوشتن گزینه "کاربر تازه وارد" بدین معنا نیست که به معنای واقعی تازه وارد باشند.

موفق باشی .

Javad_Darvish_Amiry
پنج شنبه 23 دی 1389, 16:45 عصر
دوست من اگه در مورد بحثی دانش کافی یا اطلاعاتی ندید نظر ندید و حجم تاپیک رو اضافه نکنید (جزء قوانین سایت هست) با تشکر.

چون دوست ندارم از بحث (یعنی گفنگو و چالش علمی) به جدل (یعنی مرافعه و چالش اخلاقی) کشیده بشم (هر چند در صورت تمایل حضرت عالی به ایجاد یک دیالکتیک فیمابین، و در صورت عصبانی نشدن مدیریت سایت، با توجه به چند تا پستی که البته به صورت اتفاقی از شما دیدم، و لحن زیبایی که معمولا استفاده میکنین :چشمک: ، و به زعم شما همیشه این دوستان هستن که متون شما رو با دقت مطالعه نمیکنن :چشمک: ، خودم هم خیلی از یه چالش البته دوستانه و صمیمانه بدم نمیاد.)، تنها پاسخ سوالتون رو ارسال میکنم، امیدوارم مفید باشه:


بینید مثل من میخوام یک فرم رو پر کنم بعد یک دکمه رو کلیک کنم و اطلاعاتم هم داخل پایگاه داده ثبت بشه ( در روییداد کلیک دکمه ).
تا انجا درست؟
حالا میخوام در همون رویداد اطلاعات تکس باکس هام هم به یک URL فرستاده بشه.
مثل :
www.mm.com?name=majid
و نمیخوام کاربر به صفحه بالا فرستاده بشه یعنی در همون صفحه ثبت نام بمونه و در پش صفحه (همون روییداد کلیک دکمه ثبت) این اطلاعات فرستاده بشه.

خوب من هنوز نفهمیدم رویداد کلیک دکمه، سمت کلاینت پردازش میشه یا سمت سرور، یعنی فرم بعد از کلیک پست بک همزمان میشه یا غیر همزمان. بنابراین هر دو جنبه رو بررسی میکنم که حجم تاپیک هم خیلی بالا نره :چشمک: :
خوب میدونیم که بلافاصله بعد از کلیک به صورت خیلی عادی صفحه پست بک میشه که شما باید جلوی این کار رو با بایند کردن یه متود جاوا اسکریپت به کلیک دکمه بگیری. این طوری وقتی دکمه کلیک شد، به جای submit متود شما اجرا میشه.
حالا مثلا می تونی با جی کوئری یا یه کتابخونه دیگه یا کد دستنویس خودت، یه درخواست ایژکس به آدرسی که گفتی بفرستی. اگه حجم اطلاعات فرم و تعداد فیلد ها کمه، این کار رو با get انجام بده، اگه نه post بهتره. تا این جا تکلیف آدرس دوم معلوم شد. حالا آدرس اول: اگه میخواید صفحه پست بشه، کافیه بعد از این که کارای بالا رو انجام دادید، مقدار true رو به عنوان نتیجه متود برگردونید، یعنی آخر دستوراتی که کارهای بالا رو براتون انجام میدن، بنویسید: return true; این طوری خود مرورگر بقیه کار ها یعنی پست فرم به آدرس اصلی رو براتون انجام میده. اگه نه میخواید پست بک اصلی هم ایژکس باشه، باز دوباره یه درخواست ایژکس دیگه میسازید و به آدرس اصلی میفرستید. در آخر متد هم برای اینکه فرم submit نشه توسط مرورگر، false رو برگردونید : return false;
این پردازش سمت کلاینت بود؛ ولی اگه میخواید سمت سرور رویداد کلیک دکمه اتون پردازش بشه، از این هم ساده تره، اول فرم به حالت معمولی پست بک بشه. اونجا بستگی داره که داده خام رو میخواید به آدرس دوم بفرستید یا اینکه نه اول باید پردازش بشه (مثلا اعتبار سنجی یا اعمال منطقی و ریاضی و تعامل با پایگاه و ....) بعد ارسال. در هر صورت فرقی نمیکنه تو پایه؛ بعد از اینکه تصمیم گرفتید داده کجا باید به آدرس دوم ارسال بشه (مثلا تو همون پیج لود در صورتیکه نیاز به هیچ پردازشی نیست؛ یا پایان یه متود در صورتیکه نیاز به پردازش هایی هم داره) همونجا یه وب-رکوئست جدید می سازید و باز به دو شیوه می تونید رکوئستتون رو ارسال کنید:


HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.myaddress.com/");
request.Method = "POST | GET";

میتونید درخواست رو مستقیم ارسال کنید و منتظر بمونید تا پاسخ دریافت بشه و بعد ادامه پردازش صورت بگیره، یا اینکه درخواست رو به صورت asynchronous ارسال کنید که در این صورت درخواست تو یه Thread جدا گانه ارسال میشه و ادامه پردازش منوط به دریافت پاسخ نیست.
امیدوارم تا اینجا به دردتون خورده باشه، ولی اگه باز احساس میکنی که این کلمات نشانه نداشتن دانش کافی یا بی اطلاعاتی بنده است، حقیر، از صمیم قلب عذر خواهی میکنم و برات ارزوی موفقیت و بهروزی دارم.
یا علی :لبخندساده:

Javad_Darvish_Amiry
پنج شنبه 23 دی 1389, 16:54 عصر
یکی دو تا نکته یادم رفت. اول اینکه از کدت برمیاد که ظاهرا میخوای با get (یعنی تو QueryString) داده رو بفرستی، که خوب مشخصه که باید آدرسی که برای ایجاد درخواست استفاده میکنی رو قبلش با QueryString های مناسب بسازی و از روش درخواستت رو ایجاد کنی. دوم هم اگه از آدرست مطمئن نیستی، بهتره به جای cost مستقم، که در صورت ناموفق بودن ایجاد Exception میکنه و پردازش متوقف میشه، از کد زیر استفاده کنی که اگه در خواست ایجاد نشد، تولید خطا نکنه:


HttpWebRequest request = HttpWebRequest.Create("http://www.myaddress.com/") as HttpWebRequest;
if (!Object.ReferenceEquals(null, request)) {
request.Method = "POST | GET";
// ادامه پردازش
}

پاینده باشی.

alonemm
چهارشنبه 29 دی 1389, 14:33 عصر
دوست من :
میبینم که باز شما اول یک جواب در خارج از بحث مطرح میکنید و بعد جواب اصلی.
درست حالا توی پست بالا دارید جواب منو میدید که متشکرم.
ببنید عملیات کلیک سمت سرور انجام میشه یعنی پس از کلیک کردن دکمه صفحه به سمت سرور رفته و باز میگرده (همون عملیات PostBack) و روییداد کلیک دکمه انجام میشه و تا اینجا که هیچ.
حالا من میخوام در انتهای این عملیات مثل نام کاربر رو که توی تکس باکس مثل txtname هست رو به یک صفحه بفرستم از طریق ها لا مثل querystring همانند
www.majid.com/user.aspx?username=majid (http://www.majid.com/user.aspx?username=majid)
این صفحه هم در روییداد PageLod اگه در قسمت QueryString وجود داشته باشه username مقدارشو میگیره و مثل واسه این نام کاربری یک پیام تبریک میفرسته یه آدرس Email که کاربر داده.
حالا به نظر شما این سناریو رو چه گونه با کدهایی که گفتید پیاده سازی کنیم؟
با تشکر.