PDA

View Full Version : انتقال اطلاعات با جاوا اسکریپت



fakhravari
شنبه 16 دی 1391, 16:33 عصر
با سلام
2 صفحه ساده html را در نظر بگیرید .
از صفحه اول میخواهیم چند مقدار از textbox بگیره و به صفحه دوم ارسال کنه.
به چه شکل باید مقادیر در صفحه دوم با جاوا اسکریپت دریافت کرد.:متفکر:

mehdi.mousavi
شنبه 16 دی 1391, 19:41 عصر
با سلام 2 صفحه ساده html را در نظر بگیرید . از صفحه اول میخواهیم چند مقدار از textbox بگیره و به صفحه دوم ارسال کنه. به چه شکل باید مقادیر در صفحه دوم با جاوا اسکریپت دریافت کرد.:متفکر:

سلام.
آخه نگفتید مقادیر چطور به صفحه دوم ارسال شده. اگر مقادیر رو در Cookie ذخیره کرده اید، خوب طبیعتا باید از Cookie بگیرید. اگر مقادیر در URL به صفحه مقصد ارسال شده، خوب می تونید از window.location.search و کمی Regular Expression برای رسیدن به مقادیر استفاده کنید؛ یا حتی از چنین jQuery Plugin (http://archive.plugins.jquery.com/project/query-object) هایی کمک بگیرید. خلاصه کنم، کاش می نوشتید که مقادیر چطور به صفحه دوم ارسال میشه که گمانه زنی نمی کردم. :)

موفق باشید.

fakhravari
سه شنبه 19 دی 1391, 12:38 عصر
ممنون اقای موسوی.
:ناراحت:
ببنید من 2 صفحه HTML جدا دارم که با FrontPage درست کردم.
به ویژال استادیو وصل نیستم و ... یهنی ساده ساده.
خب مثلا این کد زیر را در نظر بگیرین
<html dir="rtl">
<head>
<title>test</title>
</head>
<body>
<input type="text" value="Matn 1" name="B1" ><br>
<input type="text" value="Matn 2" name="B2" ><br>
<input type="button" value="Post" name="B3">
</body>

</html>
من چطوری کد بالا را به صفحه 2 بفرستم و دریافت کنم.
مثل asp که میشه
int a = 10;
Response.Redirect("WebForm4.aspx?id=" + a);
در صفحه 2 هم 2 تا textbox هست

payam-source
سه شنبه 19 دی 1391, 13:28 عصر
سلام
ببینید شما اول باید به textfilde هاتون id بدین مثلاً
<input type="text" value="Matn 1" name="B1 id="vtext"" >
و در قسمت کد javascript مقدار textfildeرو با این کد دریافت می کنین.
document.getElementById("vtext").value

موفق باشید.

fakhravari
سه شنبه 19 دی 1391, 22:56 عصر
با سلام
اگر ممکن کامل کد ها را بزارید

mehdi.mousavi
چهارشنبه 20 دی 1391, 05:54 صبح
من چطوری کد بالا را به صفحه 2 بفرستم و دریافت کنم. مثل asp که میشه
int a = 10;
Response.Redirect("WebForm4.aspx?id=" + a);
در صفحه 2 هم 2 تا textbox هست

سلام.
برای ارسال مقادیر فرم به فرم دیگه، روش های زیادی وجودی داره... بعنوان یک نمونه، میتونید بدین شکل عمل کنید:

<html dir="rtl">
<head>
<title>test</title>
</head>
<body>
<form name="myForm" action="WebForm4.aspx" method="get">
<input type="text" value="Matn 1" name="B1" >
<input type="text" value="Matn 2" name="B2" >
<input type="submit" value="Post" name="B3">
</form>
</body>
</html>

به تغییراتی که در کد دادم دقت کنید. کد فوق، باعث میشه تا مقادیر هر سه Input به صفحه WebForm4.aspx در URL ارسال بشه... یعنی زدن کلید Post باعث میشه تا User به URL زیر هدایت بشه:


WebForm4.aspx?B1=Matn+1&B2=Matn+2&B3=Post

به گمانم با بقیه کار مشکلی نداشته باشید. برای گرفتن مقادیر هم در WebForm4.aspx (بدون استفاده از ASP.NET و در سمت Client) میتونید از روشی که در پست دوم همین تاپیک بهش اشاره کردم، استفاده کنید.

موفق باشید.

fakhravari
چهارشنبه 20 دی 1391, 15:50 عصر
ممنون اقای موسوی.
ولی من در کل نمیخواهم در ویژال پیادش کنم.
توی 2 صفحه ساده html میخواهم ارسال و دریافت داشته باشم.
در صفحه 2 چطوری دریافت کنم

fakhravari
جمعه 22 دی 1391, 02:05 صبح
با سلام
اگه میشه اقای موسوی ممنون میشم بگید چطوری با جاوا اسکریپت مقادیر از url بخونم

fakhravari
یک شنبه 24 دی 1391, 14:52 عصر
این روش پیدا کردم اما خطا میده!
مشکل کجان؟
<script type="text/javascript">
function test()
{

try
{
var Cars = new Array(1);

var q = window.location.search.replace(/^\?/,'').split('&');
var x = q.split('=');

Cars[0] = x[0];
Cars[1] = x[1];

alert(Cars[0] + Cars[1]);
}
catch(err)
{
alert('err');
}

}
</script>
<input type="submit" value="Post" name="B3" onclick="test()">

TeacherMath
یک شنبه 24 دی 1391, 15:59 عصر
اینم یه نمونه.

fakhravari
یک شنبه 24 دی 1391, 22:39 عصر
ممنون از داش جواد.
ممنون از اقای موسوی.
---------------------------------------------------------
<html dir="rtl">
<head>
<title>test</title>
</head>
<body>
<form name="myForm" action="2.html" method="get">
<input type="text" value="Matn 1" name="B1" >
<input type="text" value="Matn 2" name="B2" >

<input type="submit" value="Post" name="B3">
</form>
</body>
</html>
---------------------------------------------------------
<html dir="rtl">
<head>
<title>وب سایت محمد حسین فخراوری</title>
<script type="text/javascript">
function getQueryStrings() {
var assoc = {};
var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
var queryString = location.search.substring(1);
var keyValues = queryString.split('&');

for (var i in keyValues) {
var key = keyValues[i].split('=');
if (key.length > 1) {
assoc[decode(key[0])] = decode(key[1]);
}
}

return assoc;
}
</script>
</head>
<body>
<input type="text" value="" name="B1" >
<input type="text" value="" name="B2" >
<input type="submit" value="ثبت اطلاعات" name="B3">

<script type="text/javascript">
try
{
var qs = getQueryStrings();
var b1 = document.getElementById("B1");b1.value = qs["B1"];
var b2 = document.getElementById("B2");b2.value = qs["B2"];
} catch(err){}
</script>

</body>
</html>

fakhravari
سه شنبه 03 بهمن 1391, 12:53 عصر
با سلام
دوستان با روش پست 9 چطوری میشه با ارایه اونو جدا کرد؟

fakhravari
دوشنبه 07 اسفند 1391, 10:47 صبح
دوستان پست 9 جواب نمیدید/

fakhravari
دوشنبه 19 فروردین 1392, 01:11 صبح
روش ساده تر
<script type="text/javascript">
try {
var Arry = location.search.split('&');
for (i = 0; i < Arry.length - 1; i++) {
var key = Arry[i].split('=');
if (i == 0) {
(document.getElementById("B1")).value = key[1];
} else {
(document.getElementById("B2")).value = key[1];
}
}
} catch (err) { alert('خطا'); }
</script>

iman_82
یک شنبه 02 شهریور 1393, 23:13 عصر
ممکنه درباره این کد توضیح بدید چیکار میکنه
مخصوصا قسمت for
function getQueryStrings() {
var assoc = {};
var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
var queryString = location.search.substring(1);
var keyValues = queryString.split('&');

for (var i in keyValues) {
var key = keyValues[i].split('=');
if (key.length > 1) {
assoc[decode(key[0])] = decode(key[1]);
}
}

return assoc;
}

8908183
دوشنبه 03 شهریور 1393, 10:07 صبح
ببینید اصلا نیازی نیست که شما اطلاعات رو با جاواسکریپت دریافت کنید....پسوند صفحه رو فرضا به php تغییر بدید و با php مقدار رو دریافت کنید و یک imput با type =hidden هم قرار بدید توی صفحه و بعدش value اون input را با دستور echo برابر با مقدار دریافتی بگذارید...حالا کافیه که با یه سطر دستور value اون input رو بخونید و دیگه به هیچ عنوان نیاز به این همه کدهای اضافه تر نیست.مشکلی بود در خدمتم.

iman_82
دوشنبه 03 شهریور 1393, 11:36 صبح
نه من فقط جهت یادگیری میخوام بدونم