PDA

View Full Version : ارسال و دریافت array از طریق ajax و json



alismith
شنبه 22 مرداد 1390, 03:25 صبح
سلام

من یک مشکلی دارم و نمی دونم چطوری بعد از تعریف و ساخت یک array در سمت کلاینت ، این ارایه رو سمت سرور بفرستم؟
مثلا اگه فرم بود از serialize استفاده می کردیم و خروجی هم مثلا json پاس میدادیم

حالا اولا لطف کنید بگید serialize دقیقا اطلاعات رو به چه قالبی تبدیل میکنه؟ json؟

چون در صورت استفاده از این تابع، در سمت سرور ما از json_decode استفاده نمی کنیم و به راحتی عناصر فرم رو مطابق با method ارسالی، مقادیر رو استخراج می کنیم، مثل اینکه از json و ajax استفاده نکردیم

مثال در صورت استفاده از تابع serialize :
مقادیر اینگونه دریافت می شوند(post)

$val = $_POST['key'];

مثلا اگر شبیه به تابع هم نام خودش در php عمل می کنه
و یک رشته از داده برمی گردونه، پس چطور php به راحتی خودش این مقادیر رو به array تبدیل می کنه؟

و سوال اصلی که بخاطرش این تاپیک رو زدم :

در ابتدا هم اشاره کردم ، من نمیدونم چطوری array رو در جاوا اسکریپت به قالب json تبدیل کنم تا در ajax از اون استفاده کنم؟

مثلا تابعی مثل json_encode که در php هست معادل اون در javascript هست؟

من اینو پیدا کردم JSON.stringify ولی نتونستم استفاده ای بکنم؟


با تشکر

L u k e
شنبه 22 مرداد 1390, 18:55 عصر
واسه فرستادن یه آرایه لازم نیست از json استفاده کنی array تعریف کن بعد همونو post کن از اونورم array ه بگیر تبدیلم نمی خواد

alismith
شنبه 22 مرداد 1390, 19:57 عصر
لطف میکنی یک مثال با code بزنی که کار هم بکنه؟

خیلی ممنون

mehdi.mousavi
پنج شنبه 27 مرداد 1390, 05:28 صبح
سلام من نمیدونم چطوری array رو در جاوا اسکریپت به قالب json تبدیل کنم تا در ajax از اون استفاده کنم؟ مثلا تابعی مثل json_encode که در php هست معادل اون در javascript هست؟ من اینو پیدا کردم JSON.stringify ولی نتونستم استفاده ای بکنم؟ با تشکر

سلام.
JSON.stringify توسط برخی از Browser ها Support نمیشه، در نتیجه برای تبدیل یک JSON Object به String باید Cross Browser فکر کنید. خوشبختانه Douglas Crockford قبلا این مساله رو با نوشتن Encoder/Decoder (https://github.com/douglascrockford/JSON-js) ای برای تبدیل JSON Object به String (و بالعکس) نوشته (که اگر Browser بصورت Native پشتیبانی کنه از این تبدیل، بطور خودکار از اون استفاده خواهد شد). همینطور در jQuery تابعی به اسم parseJSON وجود داره که کار تبدیل یک JSON String به JSON Object رو عهده داره.

در هر حال، برای ارسال یک آرایه (حتی چند بعدی) به PHP می تونید به این مقاله رجوع کنید (http://www.zulius.com/how-to/send-multidimensional-arrays-php-with-jquery-ajax/) (که سه روش برای انجام اینکار در اون ارائه شده).

موفق باشید.

idocsidocs
شنبه 14 آبان 1390, 01:45 صبح
در هر حال، برای ارسال یک آرایه (حتی چند بعدی) به PHP می تونید به این مقاله رجوع کنید (http://www.zulius.com/how-to/send-multidimensional-arrays-php-with-jQuery-ajax/) (که سه روش برای انجام اینکار در اون ارائه شده).
اگر بخوایم یه آرایه چند بعدی از پی اچ پی به جاوا اسکریپت بفرستیم، در سمت کلاینت چه کدی باید بنویسم تا بتونیم به مقادیر آرایه دسترسی داشته باشیم؟

alismith
شنبه 21 آبان 1390, 16:30 عصر
آرایه چند بعدی از پی اچ پی به جاوا اسکریپت



// PHP :

$arr['r1']['c1'] = "ali";

// send json data [with ajax]

echo json_encode($arr);


// JS :

//check status

// xhr with readyState
// jQuery ajax with success function

// AND give json data :

// jQuery

success : function(json){

var data = json.r1.c1; // output : `ali`

}



موفق باشید

idocsidocs
شنبه 21 آبان 1390, 18:02 عصر
آرایه چند بعدی از پی اچ پی به جاوا اسکریپت


یه مثال ساده برای ایجاد درخواستهای ایجکس، ایجاد آرایه و ارسال آرایه جی سان از طریق ایجکس می زنید؟