یه نویسنده

مقاله، کتاب، برنامه و ...

مقاله، کتاب، برنامه و ...

یه نویسنده

وبلاگی برای فعالیتهای پژوهشی و برنامه نویسی کامپیوتر، که شاید دفتر یادداشتی از دانسته‌های روزانه‌ی من باشد(شاید به‌کار شما هم بیاید). مطالبی که از دنیای کدباز جمع‌آوری میکنم و برای علاقه‌مندان این شاخه از فناوری انتشار میدهم. بیشتر نوشته‌های وبلاگ را برنامه‌نویسی‌php و سیستم‌عامل لینوکس تشکیل می‌دهند.

طبقه بندی موضوعی

۷ مطلب با کلمه‌ی کلیدی «jquery» ثبت شده است

توابع مورد نیاز آرایه برای javascript

در برنامه های تحت وب بسیار از جاوا اسکریپت و ویژگی ها ان مثل آرایه، کوکی، اعتبار سنجی(validation) و ... استفاده میشود

معمولا کار با آرایه در جاوا اسکریپت بسیار خوش دست ولی یک سری از توابع نیاز به نوشتن نیست و در اینترنت کم و بیش در سایتها و مخصوصا در جواب سوالات سایت stachoverflow یافت میشود

در این یک سری از توابعی که بیشتر به آنها نیاز است را میگزارم

۱− جستجوی موجود بودن مقدار در آرایه


function inarray(inc,arr){
    return ($.inArray(inc, arr) > -1);
}
۲−حذف یک مقدار از یک آرایه

Array.prototype.remove = function() {
    var what, a = arguments, L = a.length, ax;
    while (L && this.length) {
        what = a[--L];
        while ((ax = this.indexOf(what)) !== -1) {
            this.splice(ax, 1);
        }
    }
    return this;
};

var ary = ['three', 'seven', 'eleven'];

ary.remove('seven');

/*  returned value: (Array)
three,eleven
*/
۳- وجود مقدار تکراری در دو آرایه

function intersection_destructive(a, b)
{
  var result = new Array();
  while( a.length > 0 && b.length > 0 )
  {  
     if      (a[0] < b[0] ){ a.shift(); }
     else if (a[0] > b[0] ){ b.shift(); }
     else /* they're equal */
     {
       result.push(a.shift());
       b.shift();
     }
  }

  return result;
}

آموزش ajax و php - جلسه سوم

سلام بر دوستان

جلسه سوم از آموزش ajax و php آماده شده

در این جلسه طریقه استفاده از فرمهای وب و ارسال مقادیر از طریق ajax و دریافت به صورت json.

در این ویدیو بیشتر بر روی json و پردازش مقادیر json پرداخته شده است.


دانلود از dropBox

نمایش در آپارات


آموزش ajax و php - جلسه دوم

جلسه دوم از اموزش ajax و php آماده است در این جلسه به بررسی توابع ajax مثل post و ajax پرداخته خواهد شد.

dropBox

آپارات

آموزش ajax و php - جلسه اول

سلام بر تمامی دوستان خوبم که همه روزه به این وبلاگ سر میزنن و همیشه هم میگن چرا آپدیت نمیکنید. باورکنید انقد سرمان شلوغ شده که نگو . نپرس.

ولی تصمیم بر این داشتم تا از دانشته‌های هر چند اندک خودم مجموعه ویدیویی بسازم و برای دانلود در خدمت دوستان قرا بدم.

در این مجموعه جلسات قصد آموزش ajax رو به کمک jquery دارم. و همچنین در سمت سرور از php و mysql استفاده کردم. در این جلسات نه تنها ajax رو یاد خواهید گرفت بلکه کار با دیتابیس در php اونم بروش pdo رو هم فراخواهید گرفت. این مجموعه قراره ۶ جلسه باشه که جلسه اول به معرفی ajax و روش استفاده از اون در jquery میپردازه

 دانلود از dropbox

  دانلود و نمایش در آپارات

5ساعت خطایابی صرفا بخاطر استفاده از کتابخانه از قبل کانفیگ شده

این چند روز روی یه سایت خبری دارم کار میکنم(البته از رنگ بنفش). انواع اقسام گالری‌ها روی این سایت پیاده سازی کردم. از تایکر خبری گرفته تا اسلایدر متن و عکس. بیشتر وقت من روی این سایت کار کردن با کتابخونه‌ها و پلاگین‌های jquery برای راه اندازی اسلایدر.

آخرین روزهای برنامه‌نویسی و اتام کار هست که دیدم میگه حتما زیر عکسهای گالری هم در حالت نمایش و هم قبل از نمایش تمام صفحه متن بزاریم. در صورتی که قبلا اصلا گالری آن چنانی نمیخواست. یه مورد بهم  نشون دادو گفت همینطوری باشه و منم دیدم صرفا عکس خالی هست که با جدول نشون داده میشه.

خلاصه کار ما کشید به پلاگین گالری galleria که والا انصافا خیلی هم امکانات متنوعی داره. البته برای تهیه تمپلیت‌های متنوع اون باید مبلغ پرداخت بشه. ولی توی سایتها بگردید اگر همون تم رو استفاده کرده باشه میتونید کل کتابخونه به همراه تم رو دانلود کنید. منم سایتی پیدا کردم که تمپلیت folio رو نصب و راه‌اندازی کرده بود. گفتم دیگه دنبال خوندن مستندات برای کانفیگ و نصبش نرم و مستقیما از کانفیگ‌های همین سایت استفاده کنم.

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


اول فکر میکردم شاید پلاگین‌ها دارن روی هم تاثیر میزارن با فایرباگ تست کردم دیدم مشکل خاصی نیست. به فکر غیرفعال کردم اسکرول ماوس بر روی همون div افتادم دیدم نشد. و خلاصه همه کار کردم. بعد از حدود ۴ ساعت بالا و پایین زدن و مقایسه فایل css اصلی گالریا با کانفیگ شده اون فهمیدم از فایل کانفیگ css همون سایت که div نمایش گالریا رو بخاطر همخونی با تمپلیت سایتش حدود 10000px- به طرف چپ برده بود و این بر روی سایت من باعث باز شدن صفحه به عرض 10000 شده که با اولین اسکرول به انتهای عرض طرف چپ میرفت.

نتیجه اخلاقی این‌که بهتره همیشه کانفیگ از روی مستندات اصلی انجام بشه که حدود 20 دقیقه هم وقت گیر نیست و بر روی همون پلاگین تسلط هم پیدا می‌کنید.

اضافه و کم کردن عناصر صفحه به کمک jquery

بعضی اوقات پیش میاد که شما باید به کاربر امکان بدید تا یک عنصری رو در صفحه کم و زیاد کنه. مثلا در فرم های آپلود کاربر اجازه این رو داشته باشه حتی تا 10 فایل رو هم انتخاب کنه و بعد شروع به آپلود کنه البته برای بهم نریختن صفحه و شکیل بودن اون در ابتدا یک یک جعبه دریافت فایل قرار میگیره و بعد دکمه‌‌ای که با انتخاب اون جعبه‌ دریافت فایل بیشتری به کاربر داده میشه. 

راهکارهای زیادی برای این کار وجود داره که من اضافه کردن عناصر به کمک id و حذف همون عنصر با id از قبل داده شده.

در ابتدا فرم آپلود رو بصورت آپبود چند تایی بصورت زیر آماده میکنیم.

اضافه و حذف کردن عناصر قراره در داخل تگ‌ div که با add_element مشخص شده صورت بگیره.

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

حالا میرسیم به کد نویسی jquery:

در ابتدا دو تا متغییر برای نگهداری و کم و زیاد کردن شماره به المنت تعریف مکنیم.

var current=1;
var prev;

با کلیک بر روی دکمه add باید عنصر جدید به فرم ما اضافه بشه. برای این که فرم بهم نریزه من اون رو در داخل یک div قرار دادم تا با هر با اضافه کردن یک div که همراه با یک جعبه فایل هست بر روی صفحه اضافه بشه

 

$(document).ready(function(){
$('#add').click(function(){
   $('#add_element').append('<div id="adu'+current+'"><input type="file"  name="files[]"/></div>');
   prev = current;
   current += 1;
   console.log(prev+'--'+current);
});

اگر firebox رو روشن کنید با هر با اضافه شدن عنصر در زیر صفحه مقدار current جدید رو نشون میده. در ابتدا مقدار current رو در prev ذخیره میکنه تا برای حذف عنصر آخرین عنصر اضافه شده رو داشته باشیم. برای اضافه کردن عنصرهای جدید با مقدار id جدید هم یکی به تعداد current اضافه میشه.

و برای حذف عناصر اضافه شده:

 

$('#del').click(function(){
	$('#adu'+prev).remove();
	prev -= 1;
});

مقدار prev که آخرین شمارنده اضافه کردن عنصر جدید رو داشت با همون شمارنده آخرین عنصر رو حذف میکنه و برای حذف عناصر بعدی یکی از مقدار prev کم میکنه. البته میشه شرطی هم گذاشت در صورت بودن عنصر اون رو حذف کنه و در غیر اون صورت برنامه ادامه پیدا نکنه. البته به همین شکل هم مشکلی پیش نمیاد.

 


کد کامل این برنامه رو میتونید دانلود کنید.

دریافت
حجم: 73.3 کیلوبایت

اخطار در اعماق کدها

چند روزی هست روی یه سایتی که ورود و خروجش بصورت ajax هست دارم کار میکنم. بیشتر قسمت‌ها ساخته شده برای هر بار تست سیستم از نام کاربری mehrdad و پسورد mehrdad  استفاده میکردم و سیستم به خوبی کار میکرد. تا این که رسیدم به تحویل و قسمت‌های پایانی دیدم کلا سیستم ورود و خروج مشکل داره. 

برای تحویل پایانی نام کاربری رو ali1 دادیم و پسورد رو 1234 که سیستم هنگ کرد. گفتم شاید از تابع ساخت پسورد hash هست غیر فعال کردم دیدم نشد. گفتم شاید از دیتابیس هست دیدم نبود. گفتم شاید بخاطر تابعی که برای جلوگیری از sql_injection نوشتم باشه دیدم نبود خدایا تمام برنامه رو زیر رو کرد.

تا آخرش بعد از این که حدود 20ساعت برای رفع خطا کار کردم فهمیدم بخاطر اشتباه نوشتن دریافت مقادیر از jquery بوده. یعنی کل برنامه فقط بخاطر جا به جا نوشتن دریافت نام کاربری و پسورد بهم ریخته بود.