عرض مشاركة مفردة
 
  #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