مشکل با آرایه چند بعدی، json و ajax

i-php-i

Active Member
من توی سرور به کمک کدهای زیر یه آرایه چند بعدی ایجاد می کنم، اون رو به فرمت جی سان تبدیل می کنم و برای کلاینت می فرستم:
PHP:
$i=0;

        $result=$this->db->query($sql);
        while($row=$result->fetch_assoc())
        {
            $i++;
            extract($row);
            $arr[$i][id]=$id;
            $arr[$i][time]=$time;
        }
        $myjson=json_encode($arr);
        header('Content-Type: text/plain');
        echo $myjson;
توی کلاینت هم به کمک کدهای زیر پاسخ سرور رو می خونم:
کد:
var ServerResponse = xmlHttp.response;
    var myObject = eval("(" + ServerResponse + ")");
ولی وقتی از کد زیر برای نمایش طول آرایه استفاده می کنم، با ارور undefined مواجه می شم.
کد:
 alert(myObject.length);

لطفا راهنمایی کنید.
 
آخرین ویرایش:

eAmin

Well-Known Member
این خط ایراد داره:
کد:
var ServerResponse = xmlHttp.response;
به اینصورت بکار ببرید:
کد:
var ServerResponse = xmlHttp.responseText;
 

eAmin

Well-Known Member
این کد رو هم استفاده کردم ولی مشکل حل نشد.

بنظرتون مشکل به این دلیل نیست که eval یه آبجکست برمی گردونه ؟
بله دلیل دیگه هم به اون مربوط میشه، یکبار بدون eval کد رو دریافت کنید ببینید چه جوابی دریافت میکنید.
کد:
alert(ServerResponse);
 
آخرین ویرایش:

i-php-i

Active Member
بله دلیل دیگه هم به اون مربوط میشه، یکبار بدون eval کد رو دریافت کنید ببینید چه جوابی دریافت میکنید.
استفاده از eval روش ایمنی نیست. برای گرفتن پاسخ سرور راهی غیر از eval وجود نداره؟
 
آخرین ویرایش:

eAmin

Well-Known Member
مسلما! بخاطر همین پیشنهاد میشه به تنهایی از eval برای پارس کردن اطلاعات استفاده نکنید و از اسکریپتهایی که قبلا نوشته شده استفاده کنید.
شما از eval فقط برای پارس کردن اطلاعات استفاده میکنید و برای دریافت داده ها که باید از Ajax استفاده کنید.
 

i-php-i

Active Member
مسلما! بخاطر همین پیشنهاد میشه به تنهایی از eval برای پارس کردن اطلاعات استفاده نکنید و از اسکریپتهایی که قبلا نوشته شده استفاده کنید.
مگه می شه از یه اسکریپت پارسر، برای انواع رشته های دریافتی از سرور استفاده کرد؟

اگر چنین کاری ممکن باشه، حتما از اسکریپتهای آماده استفاده می کنم.
 

eAmin

Well-Known Member
مگه می شه از یه اسکریپت پارسر، برای انواع رشته های دریافتی از سرور استفاده کرد؟
بنده همچین حرفی زدم؟ عنوان تاپیک شما چی بود؟ JSON پس منظور من همون داده های JSON بوده که از سرور دریافت کردید.
کافیه از کتابخانه ی json2.js استفاده کنید...
شما از eval فقط برای پارس کردن اطلاعات استفاده میکنید
البته در اینجا باید این رو هم اضافه میکردم: یعنی بصورت خام و دست نخورده اینکار انجام میشه.
 
آخرین ویرایش:

i-php-i

Active Member
در غالب json بله...
اگر از جی کوئری برای ایجاد درخواستهای ایجکس استفاده کنم، آیا باز هم نیاز به استفاده از کتابخانه های جدا گانه هست یا اینکه خود جی کوئری کار پارس کردن رو انجامی ده؟
 

جدیدترین ارسال ها

بالا