بحث متقدم | التسجيل
الويب العربي
  تسجيل دخول
 
   
   

  ملاحظة
الموقع متاح للإطلاع والقراءة فقط، المشاركة والمواضيع الجديدة غير متاحة حالياً لحين تطوير الموقع.




الموقع متاح للإطلاع والقراءة فقط، المشاركة والمواضيع الجديدة غير متاحة حالياً لحين تطوير الموقع.

عـودة للخلف   الويب العربي سوق البرمجة والتصميم تبادل خبرات البرمجة

تبادل خبرات البرمجة تبادل الخبرات في جميع لغات البرمجة
Php , Asp , Ajax , Xml , Css , JavaScript ...etc

موضوع مغلق اضف موضوع جديد
 
خيارات الموضوع طريقة العرض
  #1  
قديم 03-01-2010, 01:39 AM
mustafasoft.com mustafasoft.com غير متصل
عضو
 
تاريخ التسجيل: Feb 2009
مشاركة: 70
مستوى تقييم العضوية: 16
mustafasoft.com is on a distinguished road
الافتراضي درس عمل نظام تصويت اجاكس - من شرحي

هذا درس مختصر عن اساسيات عمل نظام تصويت كامل بالاجاكس

سأبدأ بالملفات المطلوبة والاكواد ثم اتبعها بالشرح باذن الله

اولا : ملف مكتبة الجافا اسكربت الشهيرة jquery

http://jqueryjs.googlecode.com/files/jquery-1.3.2.js

ثانيا : صورة التحميل



ثالثا : صورة الاضافة




اكواد قاعدة البيانات



كود:
CREATE TABLE IF NOT EXISTS `polls` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `poll_title` varchar(255) NOT NULL,
  `parent_id` int(12) NOT NULL,
  `votes` int(50) NOT NULL,
  PRIMARY KEY (`id`)
) CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `poll_main` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `total_votes` int(50) NOT NULL,
  PRIMARY KEY (`id`)
) CHARSET=utf8;
اكواد البي اتش بي

اولا : ملف الاضافة
add_poll.php


كود PHP:

<?php
$SQL_HOST 
'localhost';
$SQL_USER 'root';
$SQL_PASS '';
$SQL_DB 'poll';
$MySQLi = new mysqli($SQL_HOST$SQL_USER$SQL_PASS$SQL_DB);
if(
mysqli_errno($MySQLi))
    exit(
'Database Error!');
if(
$_POST['title'] && $_POST['poll1'] && $_POST['poll2'])
{
    foreach(
$_POST as $post)
    {
        if(
$post == "" || $post == null)
            
header("location: {$_SERVER['PHP_SELF']}");
    }
    
$query_insert_main_poll "INSERT INTO poll_main  VALUES (NULL , '"$MySQLi->real_escape_string($_POST['title']) ."', 0)"
    
$MySQLi->query($query_insert_main_poll);
    
$parent_id $MySQLi->insert_id;
    
$query_polls "INSERT INTO polls VALUES ";
    foreach(
array_keys($_POST) as $key)
    {
       if(
strpos($key"poll") > -1)
        {
            
$poll_title $MySQLi->real_escape_string($_POST[$key]);
            
$query_polls .= "(NULL, '$poll_title', $parent_id, 0), ";
        }   
    }
    
$query_polls substr($query_polls0, (strlen($query_polls) - 2));
    
$MySQLi->query($query_polls);
    if(
mysqli_error($MySQLi))
        echo 
"Database Error!";
    else
    {
         exit(
'Successfully added!<br />You will be redirected back<meta http-equiv="refresh" content="2;url=add_poll.php">');
    }
}
?>
<!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" />
<style type="text/css">
.plus{
    border:thin #999999 solid;
    padding:1px;
    cursor: pointer;
}
.plus:hover{
    
    border:thin black solid;
    padding:1px;
    background-color:#CCCCCC;
}
</style>
<script type="text/javascript" src="jquery-1.3.2.js"></script> 
<title>Add Poll</title>
</head>
<body style="font-family:tahoma">
 <fieldset style="width:50%">
<legend>Add Poll</legend>
        <form onsubmit="javascript:return submiT()" method="post" name="POLL">
        <span >Poll Title : <input type="text" name="title" maxlength="64" size="40"/></span>
        <div style="padding-left:30px;padding-top:10px">
            <div>Option 1 : <input type="text" name="poll1" maxlength="64" size="40" class="poll"/></div>
            <div>Option 2 : <input type="text" name="poll2" maxlength="64" size="40" class="poll"/></div>
            <img src="plus.png" id="add_poll" class="plus"/><br />           
            <input type="submit" value="Add Poll" style="margin-left:250px;margin-top:8px;"/>
</fieldset>
</form></div> 
</div>
<script type="text/javascript">
var i = 2;
$('#add_poll').click(function(){
    ++i;
   $(".poll:last").after("<div>Option " + i + ' : <input type="text" name="poll' + i + '" maxlength="64" size="40" class="poll"/></div>');
});
function submiT()
{
   var x = 0;
   for(var i =  0; i < document.POLL.elements.length; ++i)
   {
   if(document.POLL.elements[i].value == "")
        x = 1;   
   }
   if(x == 0)
    return true;
   else
   {
        alert("Fill All Boxes");
        return false;
   }
}
</script>
</body></html>
ثانيا : الملف الرئيسي
index.php


كود PHP:


<!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" />
<script type="text/javascript" src="jquery-1.3.2.js"></script> 
<title>Poll</title>
</head>
<body style="font-family:tahoma">
<?php
$SQL_HOST 
'localhost';
$SQL_USER 'root';
$SQL_PASS '';
$SQL_DB 'poll';
$MySQLi = new mysqli($SQL_HOST$SQL_USER$SQL_PASS$SQL_DB);
if(
mysqli_errno($MySQLi))
    exit(
'Database Error!');
$query "SELECT id, title FROM poll_main ORDER BY id DESC LIMIT 1";
$result $MySQLi->query($query);
if(
mysqli_error($MySQLi))
    exit(
mysqli_error($MySQLi));
if(
$result->num_rows <1)
    exit(
"No Polls Found!");  
$row $result->fetch_array(MYSQLI_NUM);
$parent_id $row[0];
$poll_title $row[1];
$query "SELECT id, poll_title FROM polls WHERE parent_id = $parent_id";
$result $MySQLi->query($query);
if(
mysqli_error($MySQLi))
    exit(
mysqli_error($MySQLi));
if(
$result->num_rows <1)
    exit(
"No Polls Found!"); 
else
    
$rows_count $result->num_rows;
while(
$row $result->fetch_array(MYSQLI_ASSOC))
{
    
$poll_ids[] = $row['id'];
    
$poll_titles[] = $row['poll_title'];
}

echo 
"<h3>$poll_title</h3><div class='poll_options'>";
echo 
'<form action="javascript:vote();" method="post">';
for(
$i 0$i $rows_count; ++$i)
{
    echo
'<input type="radio" '
    if(
$i == 0) echo 'checked="checked"';
    echo 
'name="poll" value="' $poll_ids[$i] . '" id="poll"/>' .$poll_titles[$i] . '<br />';
}
echo 
"<div class='poll_btn'><input type='submit' class='btn' value='Vote!'/></div></form>";
?>
<img id="loading" src="loading.gif" style="display:none"/>
<script type="text/javascript">
var Poll = '<?php echo $poll_ids[0]?>';
$('input[type="radio"]').click(function(){
    Poll = $(this).val();
});
function vote()
{
    $('.btn').attr('disabled', 'disabled');
    $('#loading').css('display', 'inline');
    $.post('result.php',{poll: Poll, parent_id: <?php echo $parent_id?>}, function(data){
        $('.btn').attr('disabled', false);
        $('#loading').css('display', 'none');
         $('.poll_options').css('width', '50%');
        $('.poll_options').html(data); 
    });   
}
</script>
ملف جلب النتيجة واحتساب التصويت ، يتم استدعائه بتقنية الاجاكس
result.php


كود PHP:

   
<?php
if($_POST['poll'] && $_POST['parent_id'])
{
    
$SQL_HOST 'localhost';
    
$SQL_USER 'root';
    
$SQL_PASS '';
    
$SQL_DB 'poll';
    
$MySQLi = new mysqli($SQL_HOST$SQL_USER$SQL_PASS$SQL_DB);
    if(
mysqli_errno($MySQLi))
    exit(
'Database Error!');
    
$query "UPDATE polls SET votes = votes + 1 WHERE id = " $MySQLi->real_escape_string($_POST['poll']) . ";";
    
$MySQLi->query($query);
    if(
mysqli_error($MySQLi))
        exit(
mysqli_error($MySQLi)); 
    
$query "UPDATE poll_main SET total_votes = total_votes + 1 WHERE id = " $MySQLi->real_escape_string($_POST['parent_id']);
    
$MySQLi->query($query);
    if(
mysqli_error($MySQLi))
        exit(
mysqli_error($MySQLi));
    
$query "SELECT total_votes FROM poll_main WHERE id = " $MySQLi->real_escape_string($_POST['parent_id']);
    
$result $MySQLi->query($query);
    if(
mysqli_error($MySQLi))
        exit(
mysqli_error($MySQLi));
    if(
$result->num_rows <1)
        exit(
"No News Found1");
    
$row $result->fetch_array(MYSQLI_NUM);
    
$total_votes $row[0];
    
$parent_id =  $MySQLi->real_escape_string($_POST['parent_id']);
    
$query "SELECT poll_title, votes FROM polls WHERE parent_id = $parent_id";
    
$result $MySQLi->query($query); 
    while(
$row $result->fetch_array(MYSQLI_ASSOC))
    {
        echo 
'<div>' $row['poll_title'] . '</div>'
        echo 
'<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td width="80%"><div style="height:10px;background-color:blue;width:' . (($total_votes == 0)? : ($row['votes'] * 100) / $total_votes) . '%"></div></td><td style="text-align:left">' . (($total_votes == 0)? round(($row['votes'] * 100) / $total_votes2)) . '%</td></tr></table>';
    }
    echo 
"Total Votes : "$total_votes;
}
else
    echo 
"Error";
?>
انتهت الملفات والاكواد ، وهذه جميعا مضغوطة في ملف واحد

POLL.zip






التوقيع


Mustafa Ali Mustafa

Maadi, Cairo, Egypt

admin@mustafasoft.com [Email/MSN]

Contact Us

+20103717550

+20146067306
  #2  
قديم 03-01-2010, 01:41 AM
mustafasoft.com mustafasoft.com غير متصل
عضو
 
تاريخ التسجيل: Feb 2009
مشاركة: 70
مستوى تقييم العضوية: 16
mustafasoft.com is on a distinguished road
الافتراضي

اولا : قواعد البيانات













يتبع






التوقيع


Mustafa Ali Mustafa

Maadi, Cairo, Egypt

admin@mustafasoft.com [Email/MSN]

Contact Us

+20103717550

+20146067306
  #3  
قديم 03-01-2010, 02:52 PM
mustafasoft.com mustafasoft.com غير متصل
عضو
 
تاريخ التسجيل: Feb 2009
مشاركة: 70
مستوى تقييم العضوية: 16
mustafasoft.com is on a distinguished road
الافتراضي

ثانيا : ملف add_poll.php

اولا : كود HTML

يهمنا فيه جزئين

الاول : جزء الفورم

والثاني : الجافا سكربت

جزء الفورم :

كود:
 <form onsubmit="javascript:return submiT()" method="post" name="POLL">
        <span >Poll Title : <input type="text" name="title" maxlength="64" size="40"/></span>
        <div style="padding-left:30px;padding-top:10px">
            <div>Option 1 : <input type="text" name="poll1" maxlength="64" size="40" class="poll"/></div>
            <div>Option 2 : <input type="text" name="poll2" maxlength="64" size="40" class="poll"/></div>
            <img src="plus.png" id="add_poll" class="plus"/><br />           
            <input type="submit" value="Add Poll" style="margin-left:250px;margin-top:8px;"/>
</form> 
وهذا تحليلها



ثانيا : كود الجافا اسكربت

كود:
var i = 2;
$('#add_poll').click(function(){
    ++i;
   $(".poll:last").after("<div>Option " + i + ' : <input type="text" name="poll' + i + '" maxlength="64" size="40" class="poll"/></div>');
});
شرحه :

[/code]
كود:
var i = 2
اعلان متغير i بقيمة 2 ، وهي قيمة مساوية لعدد حقول خيارات التصويت المبدأية في الفورم السابق

كود:
$('#add_poll').click(function(){
دالة يتم تنفيذها عن الضغط على العنصر الذي يحمل id : add_poll وهو هنا علامة الاضافة

كود:
++i;
بالضغط على الاضافة ، يتم اولا زيادة المتغير الذي يحتوي على عدد حقول الخيارات

كود:
$(".poll:last").after()
كود تابع لمكتبة jquery يدخل قيمة بعد اخر عنصر يحمل class : poll

اي انه سيحقن الكود بين القوسين ، بعد كود اخر خيار في الفورم

والكود بين القوسين
كود:
"<div>Option " + i + ' : <input type="text" name="poll' + i + '" maxlength="64" size="40" class="poll"/></div>'
، هو كود عادي تماما مع ملاحظة ان اسم الحقل ، تم اضافة i اليه ، وهي تحمل قيمة تزداد بكل اضافة جديدة ، وبالتالي مع كل اضافة يحمل الحقل الجديد اسم poll3, poll4, poll5 ,... وهكذا

كود:
function submiT()
{
   var x = 0;
   for(var i =  0; i < document.POLL.elements.length; ++i)
   {
   if(document.POLL.elements[i].value == "")
        x = 1;   
   }
   if(x == 0)
    return true;
   else
   {
        alert("Fill All Boxes");
        return false;
   }
}
كود للتأكد من ملأ جميع الحقول عند الضغط على add



يتبع.....






التوقيع


Mustafa Ali Mustafa

Maadi, Cairo, Egypt

admin@mustafasoft.com [Email/MSN]

Contact Us

+20103717550

+20146067306
موضوع مغلق




قوانين المشاركة
لا يمكنك إضافة موضوع جديد
لا يمكنك الرد على المواضيع
لا يمكنك إضافة مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML مغلق
إنتقل إلى

مواضيع مشابهة
الموضوع الكاتب القسم مشاركة آخر مشاركة
نظام مفتاح الحلول - اضخم نظام ادارة اعمال ahmed_82_star طلبات البرمجة والتصميم والتطوير 1 06-07-2008 01:25 AM
برمجة اجاكس howazen تبادل خبرات البرمجة 2 10-01-2008 12:23 PM
أقوى وأسهل كتاب في تعليم الفوتوشوب و باللغة العربية وشرح متحرك من شرحي أبوتميم تبادل خبرات التصميم 8 17-08-2007 05:48 PM
الان الدردشة نظام ويندوز المحمية 100%+ مشفرة + نظام الاوامر مع ksa4chat.net ksa4chat.net مزاد المواقع 0 18-04-2007 06:45 AM
تصويت : هل تؤيد وضع نظام الرسائل الخاصة ...أرجوكم صوتوا x-1 المنتدى العام 5 29-12-2005 10:56 PM


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 11:11 PM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


 
 »  خدمات البرمجة   »  رئيسية الدليل
  »  خدمات التصميم   »  الأمن والحماية
  »  الدعاية والتسويق
  »  الدعم والتطوير
  »  الشركات الرسمية
  »  حجز دومينات
  »  خدمات الإستضافة
 
 
  »  مكتبة الإستايلات   »  رئيسية المكتبة
  »  أكواد برمجية   »  أدوات الويب ماسترز
  »  مكتبة الهاكات   »  أدوات المصممين
  »  سكربتات متنوعة
  »  مجلات إلكترونية
  »  بلوكات متنوعة
  »  ثيمات مختلفة
 
 

صحيفة متخصصة في متابعة أخبار وجديد الإنترنت العربي
والحوارات الصحفية ومعلومات تقنية متنوعة .

   
 
 

للتواصل مع فريق عمل الويب العربي
يمكنك ذالك من خلال مركز الدعم والمساندة.

 الدعم الفني |  اعتماد العضويات |  قوانين الإنتساب |  إتفاقية الإستخدام |  أهداف الويب العربي |  دليل الشركات |  مكتبة الويب |  صحيفة الويب العربي |  الرئيسية