مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

source

عضویت از 1395/11/13

مشکل خواندن اطلاعات آرایه

  • چهارشنبه 28 آذر 1397
  • 21:57
تشکر میکنم

سلام

یه آرایه تعریف کردم:

var p = []

اعدادی که تووش Push کردم:

5001
6002
9001

اندازه اطلاعات ذخیره شده رو 12 تا کاراکتر بهم میده موقع alert گرفتن.

موقعی که  سلکتور حلقه For رو میندازم تووی اون؛ دونه دونه تحویلم میده که میشه 12 تا.

مشکل کجاست؟

البته قبل فرستادنش به کوکی مشکل ندارم.

وقتی میفرستمش تووی کوکی و بعد میگیرمش اینطوری میشه.

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 29 آذر 1397
  • 11:00

چگونه اندازه گیری میکنید، کد های بیشتری رو قرار بدید.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 29 آذر 1397
  • 12:04

ممنونم

مشکل این بود که آرایه یا هر داده ای وقتی وارد کوکی میشه (تبدیل به رشته میشه).

یعنی اگر در آرایه "500" رو دشته باشم؛ بعد از ذخیره و بازیابی از کوکی به صورت  '0'   ' 0'    '5' فرمت تغییر میکنه.

لازم بود از  JSON استفاده کنم:

JSON.Parse

موقع خروج داده از کوکی و دو دستور مخصوص jquerycookie :

$.cookie.json = true;
$.cookie.raw = true;

که مخصوصی آرایه هست و  فرمت آرایه رو نگه میداره موقع ذخیره و بازیابی از کوکی.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 29 آذر 1397
  • 12:53

لطفا کل کد قرار بدید تا بررسی کنم.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 29 آذر 1397
  • 13:18
<script type="text/javascript">

دو قسمتی که لازم بود باشه
    $.cookie.json = true;
    $.cookie.raw = true;


تعریف آرایه
    var Arrey_Pnumber = [];  
    var Arrey_Name = [];   



ثبت در کوکی
        $.cookie('Arrey_Pnumber', Arrey_Pnumber);
        $.cookie('Arrey_Name', Arrey_Name);



دریافت از کوکی
        Arrey_Pnumber = $.parseJSON($.cookie('Arrey_Pnumber'));
        Arrey_Name = $.parseJSON($.cookie('Arrey_Name'));




برای انجام کاهایی که میخوام انجام بده
                 var arr_p = Arrey_Pnumber;
            var arr_L = Arrey_Pnumber;

            for (i in arr_p) {                
                $("#p2" + arr_p[i] + "").trigger("click");              
            }


            for (j in arr_L) {
                $("#p1" + arr_L[j] + "").trigger("click");               
            }






برای ثبت داده
    function Ajax_Pnumber_Name(pnumber, name) {
        Arrey_Pnumber = [];
        Arrey_Name = [];

        $('input.CheckBox:checked').each(function () {
            Arrey_Pnumber.push($(this).attr("data-Pnumber"));
            Arrey_Name.push($(this).attr("data-Name"));
        });


}


- به جز 4 خط ابتدایی که مربوط به تعریف و نگه داشتن ساختار کلی هست الباقی فانکشناله.

$.parseJSON  هم همون JSON.Parse هست. چون برای خود پلاگین بود همون رو قرار دادم.

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • پنجشنبه 29 آذر 1397
  • 14:21

کدتون را اجار کردن درست کوکی ست میشه. مطمعن شید data-Pnumber درست تنظیم میشه.

و سوالم اینه که کوکی در سرور به اشتباه نمایش داده میشه ؟

شما میتونید مقدار کوکی را در تب Application مروگر کروم مشاهده کنید.

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 29 آذر 1397
  • 15:19

این کدا الان درست شدشه

مشکلش برطرف شدست

دور قبلی:

اون دوتا خط اول رو نگذاشتم.

به اضافه ی JSON.Parse رو.

واسه همین موقع بازگردوندن کوکی اونارو دیگه به فرمت آرایه در نظر نمیگرفت و 1 پارامتر از نوع String رو تحویلم میداد.

در صورتی که 3 پارامتر رو Push کردم.

تووی Stack خوندم که داده ها وقتی وارد Cookie میشه تبدیل به استرینگ میشه. حالا هر فرمتی و یا نوعی که می خواد داشته باشه.

برای حفظ فرمت اون لازم بود که از JSON استفاده بشه.

البته اون دوتا خط اول مخصوص خود پلاگین کوکیه.

اگر که از اون استفاده نمیکردم بایستی برای ذخیره در کوکی از Json.stringify  استفاده میکردم برای Array .

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)