parsgreen.com
article

ساخت قابلیت امتیازدهی با PHP و Ajax

ajax-php-voting

از جمله قابلیت ها و امکانات مورد نیاز در برخی صفحات وب مانند شبکه های اجتماعی، پایگاه های خبری، سایت های پرسش و پاسخ، انجمن ها و... قابلیت امتیازدهی به مطالب و نظرات کاربران است که امروزه کاربرد فراوان دارد، ویژگی خاص این قابلیت، یعنی نیاز به ارسال و دریافت درخواست در پس زمینه و بدون رفرش شدن صفحه باعث می شود که ناگزیر دست به دامن آژاکس (Ajax) یا فریم ورک های آن شویم، از طرفی بعد از ارسال درخواست آژاکسی، در سمت سرور نیز باید با php و mysql آن را پردازش کرده و متناسب با اتفاقاتی که روی می دهد، خروجی ارسال کنیم، البته مبحث اصلی یادگیری ایجاد و مدیریت این امکان است و جزئیات آن به برنامه نویس بستگی دارد، لذا در این آموزش تنها به قسمت آژاکس و php آن خواهیم پرداخت و قسمت mysql را خودتان می توانید با توجه به نیازتان اضافه کنید.

کد جاوا اسکریپت سیستم امتیازدهی


قبل از هر چیز ما به واسطه ای نیاز داریم که بتواند بدون رفرش شدن صفحه، درخواست کاربر را به سرور منتقل کرده و پاسخ سرور را دریافت، پردازش و در صورت نیاز خروجی دهد، این واسطه در اکثر موارد چیزی نیست به جزء آژاکس و جاوا اسکریپت (یا فریم ورک های مبتنی بر آن مانند جی کئوری) که در زیر یک نمونه از آن را ملاحظه می کنید.
<script type="text/javascript">
//<![CDATA[
function voting(action,id){
    var up_point_id = "up_point_" + id;
    var down_point_id = "down_point_" + id;    
    var loading_id = "loading_img_" + id;        
    var loading = '<img src="loading.gif" alt="loading" height="16" width="16" border="0" />';
    if (action == 'up'){
        var user_point = document.getElementById(up_point_id).innerHTML;
    }
    else if (action == 'down'){
        var user_point = document.getElementById(down_point_id).innerHTML;
    }
    var xmlhttp;
    if (window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }
    else{
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState > 0 && xmlhttp.readyState < 4){
        document.getElementById(loading_id).innerHTML=loading;
    }
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById(loading_id).innerHTML='';
        var response = xmlhttp.responseText;
        var splited_response = response.split("||");
        var status = splited_response[0];        
        var new_point = splited_response[1];
        if (action == 'up' && status == 'ok'){
            document.getElementById(up_point_id).innerHTML=new_point;
        }
        else if (action == 'down' && status == 'ok'){
            document.getElementById(down_point_id).innerHTML=new_point;
        }
    }
  }
  var req = "vote.php?do=" + action + "&user=" + id + "&point=" + user_point;
  xmlhttp.open("GET",req,true);
  xmlhttp.send();
}
//]]>
</script>
توضیح:
- در کد بالا ما صرفا از برنامه نویسی ساده جاوا اسکریپت و آژاکس استفاده کرده ایم که این کار موجب کاهش چشمگیر حجم نهایی صفحات وب می شود.
- تابعی که از آن استفاده کرده ایم، voting نام دارد که البته یک نام دلخواه و فرضی است، این تابع از دو آرگومان استفاده می کند، آرگومان اول (action) مشخص می کند که آیا کاربر قصد دادن امتیاز منفی را دارد یا اینکه می خواهد امتیاز مثبت بدهد، مقادیر آرگومان در هنگام فراخوانی تابع با عبارات up یا down مشخص می شوند.
- آرگومان دوم برای این است که کاربران مختلف را در صفحه از هم متمایز کنیم، در اینجا می توان از تکنیک های زیادی بسته به سلیقه استفاده کرد، به طور مثال ما از نام کاربران برای آرگومان دوم استفاده کرده ایم و برای هر کاربر نیز، نام او را به انتهای عنوان آی دی بلاک ها اضافه نموده ایم، به این ترتیب سیستم ما قادر خواهد بود که هر کاربر را به طور مجزا شناسایی کند، البته در عمل برای ایجاد چنین مواردی می توان در هنگام خروجی گرفتن، لیست کاربران را از دیتابیس استخراج و در حلقه foreach یا for به صورت داینامیک چاپ کرد.
- در قسمت اول تابع  voting چند متغیر تعریف می کنیم که در ادامه به آنها نیاز خواهیم داشت، به فرض متغیر up_point_id از پیوستن پیش عبارت _up_point به آرگومان id برای هر کاربر به صورت داینامیک، آی دی اختصاصی بلاک او را برای امتیازات مثبت تعریف می کند، یا متغیر loading_id به همین ترتیب مشخص می کند که تصویر کوچک نمایش در حال بارگذاری باید برای کدام کاربر به نمایش درآید.
- در گام بعدی چون در اینجا ما از دیتابیس استفاده نمی کنیم، ناچاریم امتیازات فعلی را از صفحه حاضر دریافت کنیم، لذا یک متغیر با نام user_point تعریف می کنیم که وظیفه اش گرفتن محتوای درون بلاک up_point_id یا down_point_id است، این مقدار به سرور ارسال شده و (در این مثال) با عدد 1 جمع می شود، نهایتا نیز حاصل با xmlhttp.responseText بازگشت داده می شود.
- همان طور که در آموزش های مقدماتی آژاکس (Ajax) گفته ایم، پس از ارسال درخواست آژاکسی، xmlhttp.readyState در چند وضعیت قرار می گیرد که با اعداد 0 تا 4 دریافت می شوند، بدین شرح:
عدد 0 به معنی حالت عادی و عدم درخواست آژاکس است.
عدد 1 به معنی شروع درخواست آژاکس است.
عدد 2 به معنی دریافت درخواست آژاکس توسط سرور است.
عدد 3 به معنی در حال پردازش بودن درخواست آژاکس است.
عدد 4 به معنی تکمیل درخواست و آماده بودن پاسخ آن است.
لذا بین عدد 0 تا 4 می توان یک تصویر کوچک به عنوان در حال بارگذاری نمایش داد.
- برای اینکه بتوانیم پاسخ سرور را به درستی مدیریت کنیم، آن را با split به آرایه هایی تجزیه می کنیم، در اینجا از علامت || به عنوان جدا کننده، برای قسمت کردن پاسخ و تجزیه آن در چند متغیر مجزا استفاده کرده ایم، حال متغیر status بخش اول پاسخ سرور و متغیر new_point قسمت دوم آن را در خود دارد.
- ملاحظه می کنید که از متد GET برای ارسال و دریافت متغیرها و مقادیر آنها به سرور استفاده شده است.

فراخوانی تابع voting


برای فراخوانی تابع کافی است آن را به صورت a و href به همراه رویداد onclick تعریف کنید، این کار را در نمونه زیر برای دو کاربر انجام داده ایم.
<div class="user">
<a href="#" onclick="voting('up','user1');"><img src="plus.png" height="16" width="16" alt="up" title="امتیاز مثبت" border="0" /></a>
<span id="up_point_user1">0</span>
<a href="#" onclick="voting('down','user1');"><img src="minus.png" height="16" width="16" alt="down" title="امتیاز منفی" border="0" /></a>
<span id="down_point_user1" dir="ltr">0</span>
<span id="loading_img_user1"></span>
</div>
<div class="user">
<a href="#" onclick="voting('up','user2');"><img src="plus.png" height="16" width="16" alt="up" title="امتیاز مثبت" border="0" /></a>
<span id="up_point_user2">0</span>
<a href="#" onclick="voting('down','user2');"><img src="minus.png" height="16" width="16" alt="down" title="امتیاز منفی" border="0" /></a>
<span id="down_point_user2" dir="ltr">0</span>
<span id="loading_img_user2"></span>
</div>
توضیح:
- در مثال بالا برای هر کاربر یک بلاک با کلاس فرضی user در نظر گرفته ایم.
- اگر به آی دی به کار رفته شده برای تگ های span دقت کنید، ملاحظه می کنید که نام هر کاربر برای تفکیک، به انتهای آنها اضافه شده است.

کد php برای سیستم امتیازدهی


برنامه هنوز تکمیل نشده است، گذشته از سمت کاربر و اسکریپت نویسی آن، بخش عمده کار مربوط می شود به سمت سرور و پردازش های آن، به طور مثال پس از ارسال درخواست، ابتدا باید ببینیم کاربر به چه کسی قصد امتیاز دادن دارد  و امتیاز فعلی آن فرد چقدر است، اگر قصد کاربر امتیاز مثبت بود، امتیازات فعلی را به اضافه مقادیر جدید کنیم، یا برعکس اگر کاربر امتیاز منفی داد، امتیازات فرد را از مقادیر جدید کم و سپس نتایج جدید را هم در دیتابیس به روز کرده و هم به صفحه مرورگر ارسال کنیم، لذا بخش اصلی کار ما در کنار کدها و برنامه نویسی php کار با دیتابیس و پرس و جوهای mysql خواهد بود، اما به جهت اینکه آموزش حاضر صرفا برای این است که یک نمونه باشد، از مباحث مربوط به mysql آن می گذریم و برای درک مطلب با یک تکه کد php ساده کار را ادامه می دهیم.
<?php
$do = $_GET['do'];
$point = $_GET['point'];
if ($do == 'up'){
    $new_point = $point + 1;
}
elseif($do == 'down'){
    $new_point = $point - 1;    
}
echo 'ok'.'||'.$new_point;
?>
توضیح:
- این کد را با نام vote.php در یک فایل ذخیره کنید، فایل حاضر و صفحه html که کد آژاکس را در آن قرار داده ایم باید در یک فولدر قرار گیرند یا اینکه آدرس قسمت var req به درستی تنظیم شود.
- در کد بالا تنها با یک دستور شرطی ساده امتیاز فعلی کاربر را یک واحد افزایش یا کاهش می دهیم.
- خروجی ما با علامت || از هم تفکیک شده است، همان طور که پیش تر گفتیم، در سمت کاربر و در کد آژاکس، پاسخ سرور را با این علامت و دستور split تجزیه می کنیم.

کد نهایی و پیش نمایش آنلاین


برای ملاحظه یک نمونه آزمایشی و اولیه از سیستم امتیازدهی می توانید از کد و پیش نمایش آنلاین زیر استفاده کنید.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | ایجاد امکان امتیازدهی در سایت</title>
<!-- http://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
.user{
    display:block;
    border:#666 1px dashed;
    height:30px;
    width:120px;
    padding:4px;
    margin:4px;
}
</style>
<script type="text/javascript">
//<![CDATA[
function voting(action,id){
    var up_point_id = "up_point_" + id;
    var down_point_id = "down_point_" + id;    
    var loading_id = "loading_img_" + id;        
    var loading = '<img src="loading.gif" alt="loading" height="16" width="16" border="0" />';
    if (action == 'up'){
        var user_point = document.getElementById(up_point_id).innerHTML;
    }
    else if (action == 'down'){
        var user_point = document.getElementById(down_point_id).innerHTML;
    }
    var xmlhttp;
    if (window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
    }
    else{
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState > 0 && xmlhttp.readyState < 4){
        document.getElementById(loading_id).innerHTML=loading;
    }
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById(loading_id).innerHTML='';
        var response = xmlhttp.responseText;
        var splited_response = response.split("||");
        var status = splited_response[0];        
        var new_point = splited_response[1];
        if (action == 'up' && status == 'ok'){
            document.getElementById(up_point_id).innerHTML=new_point;
        }
        else if (action == 'down' && status == 'ok'){
            document.getElementById(down_point_id).innerHTML=new_point;
        }
    }
  }
  var req = "vote.php?do=" + action + "&user=" + id + "&point=" + user_point;
  xmlhttp.open("GET",req,true);
  xmlhttp.send();
}
//]]>
</script>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیر فعال است یا پشتیبانی نمی شود! <br />
</noscript>
<div class="user">
<a href="#" onclick="voting('up','user1');"><img src="plus.png" height="16" width="16" alt="up" title="امتیاز مثبت" border="0" /></a>
<span id="up_point_user1">0</span>
<a href="#" onclick="voting('down','user1');"><img src="minus.png" height="16" width="16" alt="down" title="امتیاز منفی" border="0" /></a>
<span id="down_point_user1" dir="ltr">0</span>
<span id="loading_img_user1"></span>
</div>
<div class="user">
<a href="#" onclick="voting('up','user2');"><img src="plus.png" height="16" width="16" alt="up" title="امتیاز مثبت" border="0" /></a>
<span id="up_point_user2">0</span>
<a href="#" onclick="voting('down','user2');"><img src="minus.png" height="16" width="16" alt="down" title="امتیاز منفی" border="0" /></a>
<span id="down_point_user2" dir="ltr">0</span>
<span id="loading_img_user2"></span>
</div>
<hr />
سیستم امتیازدهی بالا جهت تست و بدون استفاده از دیتابیس کار می کند؛ لذا امتیازات بعد از بستن یا رفرش صفحه به حالت پیش فرض بر می گردند، برای ساخت یک سیستم امتیازدهی کامل باید علاوه بر آژاکس و php از mysql نیز استفاده کنید.
</body>
</html>
پیش نمایش
sectionدسته بندی: آموزش کاربردی » Ajax
related مطالب بیشتر:
» اعتبار سنجی همزمان فرم با آژاکس (ajax) و php
» لیست داینامیک پیشنهاد کلمات، مبتنی بر آژاکس، php و mysql
» نمایش زنده آمار و اطلاعات با آژاکس (Ajax)
» نمایش داینامیک و صفحه به صفحه مطالب با آژاکس
» ارسال اطلاعات فرم با آژاکس (ajax) و نمایش پیام در حال پردازش (loading)
commentنظرات (۱۷ یادداشت برای این مطلب ارسال شده است)
نویسنده: mahnaz
زمان: ۰۷:۱۴:۱۶ - تاریخ: ۱۳۹۱/۰۸/۰۱
با سلام. ممنون از آموزشهاي بسيار عالي شما. اگه امكان داره سيستم نظردهي با ديتابيس را هم آموزش دهيد. باز هم ممنون.
پاسخ: 
سلام
ممنون از پیشنهاد شما، در مطالب آینده به این آموزش نیز خواهیم پرداخت.
نویسنده: عليرضا
زمان: ۱۶:۵۹:۵۹ - تاریخ: ۱۳۹۱/۰۸/۰۳
مثل هميشه اموزشتون بسيار عالي بود. لطفا اموزش نظردهي ديتابيسي را هم بذاريد. دستتون درد نكنه. ضمنا ممكنه بگيد شما تدريس خصوصي هم انجام ميديد يا نه.
پاسخ: 
سلام
ممنون از نظر لطف شما، البته در مورد امکان نظر دهی قبلا مطلبی مرتبط در این لینک منتشر شده:
آموزش ساخت فرم تماس با php و mysql
با این وجود در آموزش های آینده به طور خاص به آن خواهیم پرداخت.
در مورد تدریس خصوصی، فعلا این امکان تنها به صورت آنلاین و در ساعات خاص فراهم است.
نویسنده: سینا
زمان: ۱۳:۴۶:۱۹ - تاریخ: ۱۳۹۱/۰۸/۰۵
سلام آموزش ها خیلی خوبه ولی میشه بگین چطوری با php و mysql این کار رو انجام بدیم
پاسخ: 
سلام
واقعیت این است سوالی که پرسیدید پاسخ صریحی ندارد، برای این کار شما باید با دستورات php و mysql آشنا باشید، یعنی با نحوه وارد کردن، به روزکردن، شمارش نتایج، ساخت جداول و ردیف ها و... آشنایی داشته باشید، به این ترتیب متناسب با موارد مورد نظر خود می توانید سیستم را توسعه دهید، بخش اصلی کار نوشته شده، قسمت دیتابیس را باید وقت بگذارید و یاد بگیرید.
نویسنده: frank
زمان: ۲۳:۵۱:۴۸ - تاریخ: ۱۳۹۱/۰۹/۰۳
ممنون از آموزش های فوق العادتون.
نویسنده: محمد
زمان: ۱۱:۴۵:۴۸ - تاریخ: ۱۳۹۱/۰۹/۰۶
سلام. سایتتون واقعا بی نظیره. من جواب خیلی از سوالاتم رو تو سایت شما پیدا کردم. ممنونم. یه سوال هم دارم. من این روش امتیازدهی رو انتهای صفحه استفاده کردم ولی با هر بار امتیازدهی توسط کاربر، صفحه با اینکه رفرش نمی شود ولی به ابتدای صفحه برمی گردد. اگر امکان دارد نحوه نمایش صفحه از همان قسمت را توضیح بدهید.
پاسخ: 
سلام
ممنون از نظر لطف شما، این مشکل مربوط به عبارت # درون تگ های href است، برای تغییر رفتار مرورگر چند راه وجود دارد:
- به جای علامت # از عبارت javascript:void استفاده کنید، به صورت نمونه زیر:
<a href="javascript:void(0)" onclick="voting('up','user1');">
- یا در انتهای فراخوانی تابع، عبارت return false را اضافه کنید:
<a href="#" onclick="voting('up','user1'); return false;">
- یا آی دی بلاک هر کاربر را به انتهای علامت # اضافه کنید:
<a href="#up_point_user1" onclick="voting('up','user1');">
البته روش های بالا تفاوت هایی نیز با هم دارند، در روش اول در همه حال (چه جاوا اسکریپت فعال باشد یا خیر)، مرورگر موقعیت صفحه را تغییر نمی دهد، اما در روش دوم تنها زمانی موقعیت صفحه ثابت می ماند که جاوا اسکریپت در مرورگر کاربر فعال باشد و نهایتا در روش سوم مرورگر کاربر را به بلاکی که آی دی آن را مشخص کرده ایم هدایت می کند؛ در حالت عادی بهتر است روش اول را انتخاب کنید.
نویسنده: محمد
زمان: ۱۰:۵۱:۰۸ - تاریخ: ۱۳۹۱/۰۹/۲۸
ممنون از راهنماییتون. من قابلیت امتیازدهی رو به پایگاه داده ام متصل کردم. به این صورت است که وقتی کاربر در سایت ثبت نام می کند می تواند امتیاز بدهد. وقتی هم که امتیاز می دهد اگر صفحه را رفرش کند یا بعدا باز هم وارد شود دیگر نمی تواند به آن قسمت امتیاز بدهد و علامت مثبت و منفی غیر فعال می شوند. ولی مشکل اینجاست که تا وقتی صفحه را رفرش نکرده هر چقدر می خواهد می تواند امتیاز بدهد. ممکن است کدهایی که بتوان بلافاصبه بعد از امتیاز دادن لینک غیر فعال شود را بفرمایید.
پاسخ: 
برای کنترل اینکه کاربر امتیاز داده یا خیر، نکته اول ثبت امتیازات او در دیتابیس با جزئیات (نام، ip، سشن و...) است، سپس وقتی به صورت آژاکسی مجددا امتیاز می دهد، می توانید در سمت سرور (با کدهای php) وضعیت امتیازدهی او را بررسی کنید، اگر از دید سیستم مجاز بود، امتیاز او را ثبت کنید، در غیر این صورت پیامی مبنی بر شما قبلا به این مطلب امتیاز داده اید، به عنوان پاسخ درخواست آژاکسی ارسال نمائید (بدین ترتیب راهی برای دور زدن سیستم وجود ندارد).
لذا برای این موارد از php و اعتبارسنجی سمت سرور استفاده کنید (چون مطمئن است و دست خود شما است) نه از روش های دیگر که سمت کاربر هستند مانند جاوا اسکریپت و... کد خاصی برای این مورد وجود ندارد، باید با توجه به سیستمی که نوشته اید گام به گام با توجه به هدفی که دارید، برنامه نویسی کنید.
نویسنده: reza
زمان: ۲۲:۴۳:۱۲ - تاریخ: ۱۳۹۱/۱۱/۰۳
سلام دوست عزیز امکانش هست برنامه کامل برام میل کنید شرمنده
پاسخ: 
سلام
خیر، متاسفانه نسخه ای به عنوان اسکریپت آماده از این آموزش ساخته نشده است.
نویسنده: ali
زمان: ۱۹:۴۹:۰۳ - تاریخ: ۱۳۹۲/۰۱/۳۰
سلام
من یک سایت جامعه ی مجازی دارم ؛ میخواهم کاری کنم که به هر گروهی بطور جداگانه امتیاز داده شود.
باید چه کار کرد که بصورت جدا به هر گروهی امتیار دهند؟
نام فایل ها را چه بگذارم؟
دیتاباس را از کدام فایل ست کنم؟
کاش مانند اسکریپت این ها را در یک زیپ قرار میدادین!
پاسخ: 
سلام
این یک اسکریپت آماده نیست، هدف آموزش این است که برنامه نویسان را در طراحی سیستم امتیازدهی راهنمایی کند، نه اینکه به صورت مستقیم قابل استفاده باشد.
برای افزودن این قابلیت به اسکریپت خود باید برنامه و دیتابیس آن را بررسی کنید و این امکان را با توجه به ساختار آن اضافه نمائید (که قاعدتا انجام صحیح این کار به دانش و تجربه بالای برنامه نویسی وب احتیاج دارد).
نویسنده: محمد
زمان: ۲۲:۳۶:۱۶ - تاریخ: ۱۳۹۲/۰۲/۲۳
سلام سایتتون فوق العاده است توضیحات ساده و روان باعث میشه تا خیلی راحت بدون دردسر به جواب برسم هر وقت برای مطلبی که سرچ میکنم به این سایت هدایت میشم خیالم از بابت جواب سوالم راحت میشه (ممنون)
پاسخ: 
سلام
نظر لطف شما است.
نویسنده: ایرانسیپ
زمان: ۰۳:۲۰:۳۷ - تاریخ: ۱۳۹۲/۰۴/۰۲
خسته نباشید ای کاش فایل هم می گذاشتید
پاسخ: 
در ویرایش های بعدی انجام خواهد شد.
نویسنده: محمد
زمان: ۱۶:۲۰:۰۵ - تاریخ: ۱۳۹۲/۰۴/۳۰
سلام .. ممنون از مطلبتون ...
ببخشید میشه لطفا قابلیت امتیاز دهی با ثبت در دیتابیس رو توضیح بدید .. ممنون آیا باید جدول جدید بسازیم ؟
میشه لطفا همراه با کد توضیح بدید ... تشکر
پاسخ: 
سلام
هدف این آموزش صرفا آشنایی با استفاده از جاوا اسکریپت و آژاکس در طراحی برنامه های وب مانند سیستم امتیازدهی و... است، بخش سمت سرور را باید خودتان تعریف کنید (اگر تجربه کار با PHP و MySQL را ندارید، باید از آموزش های مقدماتی مطالب را فرا بگیرید)، البته جهت راهنمایی بیشتر، در آموزش یک نمونه کد ساده PHP قرار داده شده، کافی است برنامه سمت سرور خود را با الگو گرفتن از چارچوب همین ساختار ایجاد کنید.
به طور مثال یک جدول برای امتیازات داشته باشید که اطلاعات هر امتیاز در آن ثبت شود (شماره آی دی مطلب، اطلاعات کاربر، آی پی، مثبت یا منفی بودن امتیاز و...)، با این اطلاعات ثبت شده می توانید هر نوع محاسبه دلخواهی انجام دهید (بستگی به میزان آشنایی و تسلط شما به کدنویسی PHP و MySQL دارد) و سپس خروجی را در بستر آژاکس به مرورگر ارسال نمائید.
نویسنده: پرویز
زمان: ۰۴:۰۱:۰۱ - تاریخ: ۱۳۹۳/۰۹/۱۷
سلام من این خطوط را متوجه نشدم تقاضا می کنم مرحله به مرحله توضیح دهید یا اینکه لپ مطلب را برسانید
حذف شد
پاسخ: 
سلام
آموزش های کاربردی با فرض آشنایی قبلی کاربران با موارد مقدماتی تهیه می شوند، اگر در درک کدها مشکل وجود دارد باید به مباحث مقدماتی Ajax + JavaScript مراجعه کتید!
نویسنده: mehrdad
زمان: ۰۹:۱۸:۵۰ - تاریخ: ۱۳۹۴/۰۱/۲۸
سلام
از شما بخاطر اینکه مطالب و آموزش هاتون رو به صورت رایگان در اختیار کاربرا قرار می دهید ممنونم من یک شبکه اجتماعی دارم که به صورت php کدهاش نوشته شده من می خوام قابلیتی بهش اضافه کنم که وقتی کاربر عضو میشه بعد از عضویت برای هر عمل و فعالیتی که انجام میدن امتیاز کسب کنند به عنوان مثال
1- وقتی تصویر آواتار رو انتخاب میکنه 5 امتیاز بگیره
2- و برای انتخاب کاور هم 5 امتیاز کسب کنه
3- با هر لایک و کامنت 2 امتیاز
3- با دعوت دوستان به سایت 25 امتیاز
4- برای هر پستی که قرار میده 6 امتیاز
همچنین اگر یک نفر دیگر پست او را لایک کرد 1 امتیاز بگیرد امیدوارم که شما بتونید من رو راهنمایی کنید
قابل ذکر است که رشته من برق می باشد و برنامه نویسی مربوط به رشته من avr هستش و برنامه نویسی هایی مانند php , html , css رو در حد نیاز فرا گرفته ام
با سپاس فراوان
پاسخ: 
سلام
ویرایش برنامه های کاربردی نوشته شده با PHP نیازمند حداقل تسلط و تجربه در حد متوسط بر این زبان است، متاسفانه در غیر اینصورت ایجاد تغییرات سفارشی آنطور که مد نظر شما است خیلی متصور نیست، چون ابتدا باید ساختار برنامه بررسی، روال کار درک و متناسب با آن کدهای جدیدی با اهدافی که شمارش کرده اید، اضافه شوند که این تنها از عهده یک برنامه نویس حداقل نیمه حرفه ای برمی آید.
نویسنده: mehrdad
زمان: ۱۶:۵۰:۵۴ - تاریخ: ۱۳۹۴/۰۱/۲۸
سلام
آیا در سایت آموزش مربوط به (امتیاز دادن به کاربر با هر فعالیت "لایک , پست , نظر و ...") قرار دارد؟
یک سوال هم ارسال کردم ولی هنوز پاسخی به آن نداده اید
با سپاس
پاسخ: 
سلام
ساختار برنامه ها عموما با هم متفاوت است و لذا نمی توان نسخه واحدی برای همه آنها پیچید! آنچه مهم است اینکه با اصول کلی کار آشنا باشید، در این صورت با بررسی ساختار برنامه خود می توانید متناسب با نیازتان امکانات دلخواه را اضافه کنید (البته همان طور که در سوال قبل گفته شد، آشنایی با برنامه نویسی PHP اجتناب ناپذیر است!).
نویسنده: mehrdad
زمان: ۲۲:۲۸:۱۶ - تاریخ: ۱۳۹۴/۰۱/۲۸
سلام
از شما ممنون که وقت گذاشتین و پاسخ دادین
من بر برنامه نویسی html , css در حد 80 درصد تسلط دارم و با برنامه نویسی php هم 40 درصدی آشنا هستم
آیا این مقدار برای درک روال کار کافی نیست؟
و اینکه آیا خود شما این برنامه نویسی را انجام می دهید اگر انجام می دهید هزینه آن چقدر است؟
با سپاس
پاسخ: 
سلام
- در صورتی که با بررسی سورس کدهای برنامه می توانید ساختار و روال کار را درک کنید، قاعدتا تسلط شما در حد کافی است یا لااقل برای شروع مناسب است.
- متاسفانه سفارشات برنامه نویسی پذیرفته نمی شود!
paged صفحه 1 از 2




more لطفا دقت کنید که یادداشت های زیر منتشر نشده و حذف خواهند شد:
- یادداشت های خارج از موضوع این مطلب.
- سوالات کلی، غیر ضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید.
- نظرات حاوی کدها و اسکریپت های خیلی طولانی (به طور مثال کد کامل قالب وبلاگ).

7 × 5
 refresh
آگهی
seonab.com
طراحی نرم افزار اندروید
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...