جهِّز نفسك لسوالف كاست، واحصل على Macbook Air
ويكيمانيا 2008. الإسكندرية، من 17 وحتى 19 يوليو

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > ويب 2.0 و البرمجية القياسية Ajax +XML+ CSS+ JavaScript وغيرها
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع
عضو جديد
تاريخ التسجيل: Sep 2006-
#1 (permalink)  
Ajax Basics بدايتك الى عالم الاجاكس [الدرس الاول+الثاني+الثالث]


السلام عليكم ورحمة الله وبركاتة

سنبدأ بإذن الله بأول دروسنا في عالم تطبيقات الاجاكس

تكمن قوة الاجاكس في التفاعل ما بين web browser و الserver ,
فهم هذا النوع من التفاعل كان مقصورا على اولئك المطورين الذين يتعاملون مع لغات البرمجة
من خلال السيرفر مثل c ,perl .
اللغات الحديثة المتقدمة php, asp.net قامت بعمل مزيج مشترك ما بين المبرمج والسيرفر
لكنهم غالبا ما يفتقرون الى الفهم الكامل لجميع التكنلوجيات من جانب المبرمج مثل JavaScript.

والان وجب علينا فهم اكثر للتكنلوجيات الحديثة لأيجاد مزيد من الحلول في تطبيقات الاجاكس .

مبادئ قراءة HTTP :
الوسيط الجيد في فهم تقنيات الاجاكس هو البروتوكول المستخدم في نقل النص التشعبي HTTP
وهو المسوؤل عن نقل الصور وصفحات الويب والكثير من هذه الامور ما بين متصفح الانترنت
والشبكة العكنبوتية .

عندما تقوم بكتابة الاحرف التالية في متصفحك "http://" فهذا يعني بأنك تعلم المتصفح
بأنك تقوم بأستخدام بروتوكول HTTP لتقوم بجلب الصفحات التي تريدها من الشبكة.

بروتوكول الـ HTTP هو عباره عن قسمين :
1-Request
2-Response
الطلب والرد فعندما تقوم بكتابة رابط الموقع التي تريد الدخول اليه في المتصفح يقوم المتصفح
بأرساال طلب نيابة عنك , ويتضمن هذا الطلب رابط الموقع الذي كنت قد كتبته وبعض المعلومات
عن المتصفح , يستقبل السيرفر هذا الطلب ويقوم بأرسال رد وبها المعلومات حسب الرابط
الذي قمت بكتابتة, ثم يقوم المتصفح بأظهار النتائج القادمة من السيرفر .

الان اصبح لدينا بعض المعلومات عن كيفية اضهار النتائج في المتصفح بشكل اوسع لننطلق الان في
بداية درسنا ولنبدا بـ :

[CENTER]تقنية الاطار المخفي Hidden Frame Technique[/CENTER]
ولدت هذه التقنية وقت ادخال لغة الـHTML الى عالم الانترنت , الفكرة الرئسية وراء هذه التقنية
هو انشاء اطار مجموعة يجمع اطر مخفية لتستخدم من جهة العميل.
وبأمكانك اخفاءه كليا في حال ساوية القيم للطول او العرض بـالصفر فهنا سيختفي الاطار
من منطقة العرض ولكن في بعض المتصفحات مثل الNetscape 4 لا يختفي كليا ولكن
يبقى البعض من ثخانة الطار بشكل ظاهر.

الانماط (Pattern) :

دائما نبدا مع الاطر الظاهره حينما يكون المستخدم متفاعل مع صفحة الويب.
فمن الطبيعي ان يكون المستخدم على عدم دراية بوجود اطر مخفية (اذا لم تكن ظاهره امامه في المتصفحات الحديثه)
في هذه النقطه يتوقع المستخدم ان يقوم السيرفر بأرسال البيانات التي قام بطلبها وعندما يحصل ذلك
الخطوه الاولى في هذه العملية تبدأ دوال الجافا سكريبت بالعمل فمثلا تقوم بأرسال البيانات الى صفحة اخرى
في المتصفح ليقوم بتنفيذها وهذه تكون الخطوه الثانية.
في الخطوه الثالثة يقوم السيرفر بأرسال البيانات الى الصفحة الثانية والسبب في ذلك
انك قمت بعمل اتفاق مع الفريم ان يكون بأرسال البيانات الى صفحة اخرى
وفي الخطوه الرابعة يكون اظهار النتائج في الاطر الظاهره في الصفحة الاخرى.

استعمال الاطر المخفية مع طلبات GET :

والان بعد ان فهمنا ما هية الاطر المخفية سنأتي للقسم الاجمل وهو تعلم كيفية عملها.
كما هي الحال في اي تقنية جديدة افضل طريقة لتعلمها هو العمل على الامثلة التطبيقية
واخترت لكم مثالا بسيطا وهو صفحة بسيطة تقوم من خلالها بأدخال بعض المعلومات عن
مستخدم لمنتج وستقوم الصفحة بجلب النتائج لك بعد ادخال رقم الـID الخاص بهذا المستخدم:

اولا عليك ان تقوم بزرع هذا الامر في قاعدة بيانات لتقوم بأنشاء جدول يحمل بعض الصفوف
(لاحظ بأنه في هذه الامثلة عليك ان تكون على دراية ببعض اللغات مثل MySQL , PHP ,JavaScript)

كود PHP:
#
# Table structure for table `Customers`
#

CREATE TABLE `Customers` (
  `
CustomerIdint(11NOT NULL auto_increment,
  `
Namevarchar(255NOT NULL default '',
  `
Addressvarchar(255NOT NULL default '',
  `
Cityvarchar(255NOT NULL default '',
  `
Statevarchar(255NOT NULL default '',
  `
Zipvarchar(255NOT NULL default '',
  `
Phonevarchar(255NOT NULL default '',
  `
E-mailvarchar(255NOT NULL default '',
  
PRIMARY KEY  (`CustomerId`)
TYPE=MyISAM COMMENT='Sample Customer Data' ;

#
# Dumping data for table `Customers`
#

INSERT INTO `CustomersVALUES (1'Michael Smith''123 Somewhere Road''Beverly Hills''California''90210''(555) 555-1234''michael@somewhere.com');
INSERT INTO `CustomersVALUES (2'Matthew Johnson''1234 Somewhere Else Street''Elsewhere''Confusion''00000''(555) 555-2345''johnboy@neato.net');
INSERT INTO `CustomersVALUES (3'Cindy Benjamin''1313 Mockingbird Lane''Somewhere''Montana''00000''(555) 555-9876''cindybean@mcok.net');
INSERT INTO `CustomersVALUES (4'Mary Klein''10 Highland Avenue''Salem''Massachusetts''01970''(555) 555-4920''mary@klein.net'); 
اهم حقل في هذا الجدول هو CustomerId فهو ما سنستخدمه للبحث عن معلومات المستخدم.

للنتقل الان الى كود الـ HTML لاستخدام تقنية الاطر المخفية , فعليك اولا البدء مع اطارات الـHTML

اولا قم بفتح صفحة جديدة بأمتداد HTM وقم بادخال الكود التالي بها وحفظها :
كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html >
<
head >
<
title>الاطر المخفية المثال الاول</title>
</
head>

<
frameset rows="100%,0" frameborder="0" >
    <
frame name="displayFrame" src="display.htm" noresize="noresize" target="_self"  >
    <
frame name="hiddenFrame" src="about:blank" noresize="noresize" >
</
frameset>

</
html
قم بحفظها بأي اسم تشاء .

اهم اتريبيوت في هذا الكود هو rows فمن خلاله سيتعرف المتصفح بأنه لن يقوم بأظهار
جسم الفريم الاخر لوضعنا القيم 100% و صفر ومن ثم قمنا بجعل قيمة frameborder حدود الفريم
مساوية للصفر للتأكد بعدم ظهر حدود الفريم . واخيرا واهم شيء قمنا بتعيين الخاصية noresize
حتى لا يقوم المستخدم برؤية ما يوجد بالفريم المخفي .

ومن ثم الان سنقوم بتصميم صفحة جديدة وليكن اسمها display.htm وسنضع بها
Text area لأدخال رقم العميل انظر الان للكود :


كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<
html dir="rtl">
<
head>
    <
title>معلومات حسابات العملاء</title>
    <
script type="text/javascript">
        function 
requestCustomerInfo() {
            var 
sId document.getElementById("txtCustomerId").value;
            
top.frames["hiddenFrame"].location "GetCustomerData.php?id=" sId;
        }
        
        function 
displayCustomerInfo(sText) {
            var 
divCustomerInfo document.getElementById("divCustomerInfo");
            
divCustomerInfo.innerHTML sText;
        }
    
</script>
</head>
<body>
    <p>قم بإدخال رقم العميل لإظهار معلوماته:</p>
    <p>رقم العميل <input type="text" id="txtCustomerId" value="" ></p>
    <p><input type="button" value="جلب معلومات العميل" onclick="requestCustomerInfo()" ></p>
    <div id="divCustomerInfo"></div>
</body>
</html> 

لنحلل الكود سويا حتى تفهموه بأكمل وجه ...

في بداية الامر في الوسم هيد قمنا بأنشاء داله اسميناها
كود:
 requestCustomerInfo()
تقوم بأخذ الرقم الذي قمت بادخالة داخل الخاصية id في الفريم الذي اعطيناه الاسم txtCustomerId
وتقوم بتخزينه بداخل متغير بحيث يقوم هذا المتغير باكمال الرابط
GetCustomerData.php?id=
بحيث يقوم بتعيين الرقم الذي وضع في المتغير بداخل هذا السطر حتى يقوم بجلب النتائج من خلاله
ومن ثم قمنا بأنشاء دالة اخرى اسميناها .

كود:
displayCustomerInfo(sText)
عمل هذه الدالة هو جلب معلومات العميل ,,

الان لنفتح ملف جديد ونقوم بتسميته GetCustomerData.php
ونضع به هذا الكود

كود PHP:
<html>
<head>
<title> جلب معلومات العميل </title>
<?php
//php code
?>
</head>
<body>
<div id="divInfoToReturn"><?php echo $sInfo ?></div>
</body>
</html>
ستلاحظ بأنه لا يوجد به ما يميزه عن اي شيء ولكن لنفهم كيفية عملة لأننا سنضيف اليه
المزيد من الاكواد ..
في الوسم الاول الخاص بالبي اتش بي سنقوم بوضع الكود الخاص بأحضار القيم
وفي الوسم الثاني سيقوم بطباعة ما يحتوية المتغير $sInfo , وفي وسم </div>
الذي ستقوم من خلاله بقراءه البيانات وارسالها الى الصفحة الفريم
لتقوم بهذا سيلزمك ان تقوم بانشاء دالة جديدة من JavaScript تستدعى حينما تبدا الصفحة بالتحميل

هذا كود الدالة وسيكون في الوسم head اسفل كود الـ PHP

كود PHP:
  <script type="text/javascript">
        
window.onload = function () {
            var 
divInfoToReturn document.getElementById("divInfoToReturn");
            
top.frames["displayFrame"].displayCustomerInfo(divInfoToReturn.innerHTML);        
        };
    
    
</script> 
هذه الدالة تعين بشكل مباشر الى window.onload . في البداية تقوم بأسترجاع المؤشر الى </div>
هذا الذي يحتوي على معلومات العميل.
وبعدها, تقوم بالوصول الى فريم العرض بأستخدام مصفوفة top.frames وتستدعي الدالة
displayCustomerInfo() التي حددت في وقت سابق, بالمرور الى innerHtml لـ </div>

ولكن من اين ستأتي هذه المعلومات , الاكيد انها ستأتي من كود الـ PHP
حسنا في البداية يلزمنا تعريف المتغير $sID على انه مصفوفة get ونجلب منها الid
ومن ثم نعرف متغير اخر اسمه $sInfo وسيكون في البداية فارغ
ونضع معلومات الاتصال بقاعدة البيانات

كود PHP:
 //customer ID
    
$sID $_GET["id"];
    
    
//variable to hold customer info
    
$sInfo "";
    
    
//database information
    
$sDBServer "localhost";
    
$sDBName "ajax";
    
$sDBUsername "root";
    
$sDBPassword "root"
قم بتغير المعلومات كما تراه مناسبا للسيرفر الذي تستخدمه .

وبعد الاتصال بقاعدة البيانات سنقوم بكتابة الكود المختص بجلب النتائج من قاعدة البيانات
وتخزينها في المتغير sInfo بالشكل المطلوب ليصبح الكود كاملا على هذا الشكل

كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>جلب معلومات العميل</title>
<?php
    
    
//customer ID
    
$sID $_GET["id"];
    
    
//variable to hold customer info
    
$sInfo "";
    
    
//database information
    
$sDBServer "localhost";
    
$sDBName "ajax";
    
$sDBUsername "root";
    
$sDBPassword "root";

    
//create the SQL query string
    
$sQuery "Select * from Customers where CustomerId=".$sID;
              
    
//make the database connection
    
$oLink mysql_connect($sDBServer,$sDBUsername,$sDBPassword);
    @
mysql_select_db($sDBName) or $sInfo "Unable to open database";
        
    if(
$sInfo == '') {
        if(
$oResult mysql_query($sQuery) and mysql_num_rows($oResult) > 0) {
            
$aValues mysql_fetch_array($oResult,MYSQL_ASSOC);
            
$sInfo $aValues['Name']."<br />".$aValues['Address']."<br />".
                     
$aValues['City']."<br />".$aValues['State']."<br />".
                     
$aValues['Zip']."<br /><br />Phone: ".$aValues['Phone']."<br />".
                     
"<a href=\"mailto:".$aValues['E-mail']."\">".$aValues['E-mail']."</a>";
        } else {
            
$sInfo "Customer with ID $sID doesn't exist.";
        }
    }
    
    
mysql_close($oLink);

?>
    
    <script type="text/javascript">
        window.onload = function () {
            var divInfoToReturn = document.getElementById("divInfoToReturn");
            top.frames["displayFrame"].displayCustomerInfo(divInfoToReturn.innerHTML);        
        };
    
    </script>

</head>
<body>
    <div id="divInfoToReturn"><?php echo $sInfo ?></div>
</body>
</html>
والان قمنا بالانتهاء من عرض النتائج قم بفتح الملفات في متصفحك الخاص
وانظر الى نتيجة عملك

اتمنى لكم التوفيق وبهذا نكون قد انهينا درسنا الاول
نلتقي في درسنا القادم بأذن الله

يرجى عند نقل الدرس ذكر المصدر .






__________________
punisher@p-des.com


معهد برمجة وتصميم


تم البدء ببرمجة سكريبت لمركز رفع لرفع الملفات

سيطرح بشكل مجاني بعد الانتهاء

لأرسال اقتراحاتكم على البريد التالي


info@ruf3.com
ThePunisher غير متواجد حالياً   قديم 05-01-2008, 10:04 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: May 2004-
#2 (permalink)  

رااااااااائع

سيتم التطبيق والعودة..






__________________
موقع مدارس الرشيد الحديثة
http://www.rasheed.ws
awam10 غير متواجد حالياً   قديم 06-01-2008, 05:17 PM
رد مع اقتباس
مشرف قسم ويب 2.0 و البرمجة القياسية
تاريخ التسجيل: Aug 2004-
#3 (permalink)  

الفاضل ThePunisher .. درس قيم يستحق التثبيت بعد إذن زملائي مشرفي القسم الأفاضل تقديرا ً لجهدك و ليستفيد منه الجميع ..
أتمنى أن يتم إستكمال الدورس في نفس هذا الموضوع.. لك التحية






__________________
أكواد نت مفهوم جديد للبرمجة العربية
www.akwad.net
Flash,Php,Java,ActionScript
أنصت للإبداع..
زمان يا نت :D
Akwad Net غير متواجد حالياً   قديم 06-01-2008, 09:52 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Sep 2006-
#4 (permalink)  

الله يبارك فيكم حبايبي

وان شاء الله استكمال الدروس في الايام القادمة

الدرس الثاني جاهز لكن ارى من الافضل ان يتم اعطاء الدرس الاول حقه

ولكم وافر التقدير

اخوكم المعـــــــــــاقب






__________________
punisher@p-des.com


معهد برمجة وتصميم


تم البدء ببرمجة سكريبت لمركز رفع لرفع الملفات

سيطرح بشكل مجاني بعد الانتهاء

لأرسال اقتراحاتكم على البريد التالي


info@ruf3.com
ThePunisher غير متواجد حالياً   قديم 06-01-2008, 10:40 PM
رد مع اقتباس
عضو نشيط جدا
تاريخ التسجيل: Feb 2004-
#5 (permalink)  

يعطيك العافيه اخوي ThePunisher

و ان شاء الله اجربه و اردلك خبر

------ خارج الموضوع -------

الفلم ليلحين ما شفته و ابي اشوفه وماعندي وقت

الفلم اهو The Punisher
------------------------

وشكراً لكم

أخوكم حمد






__________________
اللهم أغفر لنا ولوالدينا وللمؤمنين والمؤمنات والمسلمين والمسلمات
الأحياء منهم والأموات يا أرحم الراحمين
حمد مبارك متواجد حالياً   قديم 07-01-2008, 06:45 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jun 2007-
#6 (permalink)  

جميل جداً , قد قريت مصدر المقاله نفسها من هنا ScriptAlias » Blog Archive » embedding html in a post

لكن بالإنجليزي

شهد تشكر عليه






__________________
عبدالملك عبدالله الثاري
http://www.althari.com
أبو فارس غير متواجد حالياً   قديم 07-01-2008, 11:07 AM
رد مع اقتباس
مشرف قسم ويب 2.0 و فكرة
تاريخ التسجيل: Jun 2005-
#7 (permalink)  

درس جميل ومفيد .

راح احاول اطبقه في الايام القادمة ان شاء الله

لي عودة بعد التطبيق






__________________
- مدوناتـ مشرفينـ سوالفـ سوفتـ
Aldirazi | الشرياني | المسعودي | فضفضة | Flasher | الازد | مليباري | قناص النطاقات
owner متواجد حالياً   قديم 07-01-2008, 12:43 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Sep 2006-
#8 (permalink)  
Ajax Basics بدايتك الى عالم الاجاكس [الدرس الثاني]

السلام عليكم ورحمة الله

سنكمل مسيرتنا في دورة الاجاكس مع الدرس الثاني

بعد ان تعرفنا في الدرس الاول على

استعمال الاطر المخفية مع طلبات GET

سنتعلم اليوم

استعمال الاطر المخفية مع طلبات POST

افضل ما يميز طريقة ارسال البيانات POST عن GET انك يمكنك ارسال بيانات بحجم يقارب

2GB انما في طريقة GET فلا يمكنك ارسال سوا 512KB .

كما تعودنا فطريقة ارسال الطلبات بالPOST تتم من خلال form مع تعيين الmetod الى post

ومن ثم عند ارسال الطلب فأن الpost ترسل الى الurl الموجود في الخاصية action.

ومما زاد الامور تقعيدا ان المعلومات ترسل الى صفحة اخرى , ولكن هذا يتعارض مع مبدأ الاجاكس

ولكن شكرا للخاصية المسماه target .

الخاصية target هي واحده من خواص الفورم التي توضع مع الوسم <a> بوضعك لهذه الخاصية

يمكنك الطلب من الصفحة ان تعرض لك البيانات المراده في فريم اخر وفي هذا المجال سيكون اطار مخفي

لنبدأ الان بالعمل :

قم بفتح ملف جديد وضع به كود الhtml التالي

كود PHP:
<frameset rows="100%,0" frameborder="0">
    <
frame name="displayFrame" src="entry.htm" noresize="noresize" />
    <
frame name="hiddenFrame" src="about:blank" noresize="noresize" />
</
frameset
لاحظ انه لم يختلف عن مثالنا في درسنا الاول الا في السطر الثاني بحيث اردنا ان يفتح

صفحة جديدة اسميناها entry.htm

الان قم بوضع هذا الكود داخل هذه الصفحة ..
كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<
html dir="rtl">
<
head>
    <
title>اضافة عميل جديد </title>
    <
script type="text/javascript">
           
        function 
saveResult(sMessage) {
            var 
divStatus document.getElementById("divStatus");
            
divStatus.innerHTML "Request completed: " sMessage;            
        }

    
</script>
</head>
<body>
    <form method="post" action="SaveCustomer.php" target="hiddenFrame">
    <p>اكتب معلومات العميل لحفظها :</p>
    <p>اسم العميل: <input type="text" name="txtName" value="" /><br />
    العنوان: <input type="text" name="txtAddress" value="" /><br />
    المدينة: <input type="text" name="txtCity" value="" /><br />
    الامارة: <input type="text" name="txtState" value="" /><br />
    الرمز البريدي: <input type="text" name="txtZipCode" value="" /><br />
    الهاتف: <input type="text" name="txtPhone" value="" /><br />
    البريد الالكتروني: <input type="text" name="txtEmail" value="" /></p>
    <p><input type="submit" value="حفظ معلومات العميل" /></p>
    </form>
    <div id="divStatus"></div>
</body>
</html> 
من خلال الفورم الموجود امامنا قمنا بتعيين الtarget الى اطار مخفي اهم ما يميز هذه الصفحة
هي دالة الجافا سكريبت الموجوده فيه فهي تعمل عندما يعود الاطار المخفي بعد حفظ المعلومات
في صفحة savecustomer.php

لنأتي الان لعمل الصفحة SaveCustomer.php فهي ببساطه تقوم بحفظ البيانات المرسلة الليها
في قاعدة البيانات .

وهذا الكود الخاص بها وليس به ما هو جديد

كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Create New Customer</title>
<?php
    
//جلب البيانات
    
$sName $_POST["txtName"];
    
$sAddress $_POST["txtAddress"];
    
$sCity $_POST["txtCity"];
    
$sState $_POST["txtState"];
    
$sZipCode $_POST["txtZipCode"];
    
$sPhone $_POST["txtPhone"];
    
$sEmail $_POST["txtEmail"];
    
    
//رسالة الحالة
    
$sStatus "";
        
    
//معلومات قاعدة البيانات
    
$sDBServer "localhost";
    
$sDBName "ajax";
    
$sDBUsername "root";
    
$sDBPassword "";

    
//استفسارات قاعدة البيانات
    
$sSQL "Insert into Customers(Name,Address,City,State,Zip,Phone,`E-mail`) ".
              
" values ('$sName','$sAddress','$sCity','$sState', '$sZipCode'".
              
", '$sPhone', '$sEmail')";

    
$oLink mysql_connect($sDBServer,$sDBUsername,$sDBPassword);
    @
mysql_select_db($sDBName) or $sStatus "Unable to open database";
        
    if(
$sStatus == ''){
        if(
$oResult mysql_query($sSQL)) {
            
$sStatus "Added customer; customer ID is ".mysql_insert_id();
         } else {
            
$sStatus "An error occurred while inserting; customer not saved.";
        }
    }

    
mysql_close($oLink);
?>
    <script type="text/javascript">
    
        window.onload = function () {
            top.frames["displayFrame"].saveResult("<?php echo $sStatus ?>");        
        }

    </script>
</head>
<body>
</body>
</html>
الدالة mysql_insert_id() عملها يقوم على اعادة اخر auto_increment تم اضافته من خلال
الـ insert


قم بعمل هذا المثال وتمتع بالنتائج ^^

لقلة الوقت سأكتفي بهذا المثال

اتمنى لكم الفائدة وفي دروسنا القادمة سنتعرف على Hidden iFrames

والسلام عليكم






__________________
punisher@p-des.com


معهد برمجة وتصميم


تم البدء ببرمجة سكريبت لمركز رفع لرفع الملفات

سيطرح بشكل مجاني بعد الانتهاء

لأرسال اقتراحاتكم على البريد التالي


info@ruf3.com
ThePunisher غير متواجد حالياً   قديم 08-01-2008, 10:16 AM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2007-
#9 (permalink)  

بارك الله فيك اخي الكريم






General_C غير متواجد حالياً   قديم 08-01-2008, 10:45 PM
رد مع اقتباس
عضو سوبر نشيط
تاريخ التسجيل: Jun 2007-
#10 (permalink)  

مشكور اخوي مرة اخري وتم تطبيق الدرس الاول






General_C غير متواجد حالياً   قديم 09-01-2008, 01:30 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Sep 2006-
#11 (permalink)  

يعطيك العافيه يا جنرال ^^






__________________
punisher@p-des.com


معهد برمجة وتصميم


تم البدء ببرمجة سكريبت لمركز رفع لرفع الملفات

سيطرح بشكل مجاني بعد الانتهاء

لأرسال اقتراحاتكم على البريد التالي


info@ruf3.com
ThePunisher غير متواجد حالياً   قديم 09-01-2008, 04:07 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Jan 2008-
#12 (permalink)  
بارك الله فيكـ

باركـ الله فيكـ

http://www.swalif.net/softs/attachme...1&d=1201194386






الصور المصغرة للصور المرفقة
اضغط على الصورة لعرض أكبر

الاســـم:	tn.gif‏
المشاهدات:	188
الحجـــم:	7.7 كيلوبايت
الرقم:	39017  
libyan top غير متواجد حالياً   قديم 23-01-2008, 10:06 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#13 (permalink)  

بارك الله فيك يا محمد ..

عـبدالرحمن ..






أبــو عبدالله غير متواجد حالياً   قديم 28-01-2008, 04:29 PM
رد مع اقتباس
عضو جديد
تاريخ التسجيل: Sep 2006-
#14 (permalink)  
الدرس الثالث

السلام عليكم ورحمة الله وبركاتة

نكمل مسيرتنا في دورة الاجاكس وبدأناها في معرفة

الـHidden frame وطرق ارسال المعلومات وكانت Get , Post

والان ننتقل الى Hidden iFrames

بدأ ظهور خاصية الـiFrame مع ظهور تقنية الـ HTML 4.0 وهي لا تختلف اختلافا

كبيرا عن Frame الا في بعض الميزات ستعرف الفروقات من خلال التجربه,

بدايةً هناك طريقتين للأستفادة من الـiFrame والطريقة الاسهل هو وضع الـiFrame
بداخل الصفحة واستخدامه بطريقة hiddenframe لعمل الطلبات ولعمل ذلك
قم بكتابة هذا الكود:

كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<
html>
<
head>
    <
title>Hidden IFrame Example 1</title>
    <
script type="text/javascript">
        function 
requestCustomerInfo() {
            var 
sId document.getElementById("txtCustomerId").value;
            
top.frames["hiddenFrame"].location "GetCustomerData.php?id=" sId;
        }

        function 
displayCustomerInfo(sText) {
            var 
divCustomerInfo document.getElementById("divCustomerInfo");
            
divCustomerInfo.innerHTML sText;
        }
    
</script>
</head>
<body>
    <p>Enter customer ID number to retrieve information:</p>
    <p>Customer ID: <input type="text" id="txtCustomerId" value="" /></p>
    <p><input type="button" value="Get Customer Info" onclick="requestCustomerInfo()" /></p>
    <div id="divCustomerInfo"></div>
    <iframe src="about:blank" name="hiddenFrame" width="0" height="0" frameborder="0"></iframe>
</body>
</html> 
وبالصفحة GetCustomerData.php يوجد تعديل بسيط

كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Get Customer Data</title>
<?php
    
    
//customer ID
    
$sID $_GET["id"];
    
    
//variable to hold customer info
    
$sInfo "";
    
    
//database information
    
$sDBServer "your.databaser.server";
    
$sDBName "your_db_name";
    
$sDBUsername "your_db_username";
    
$sDBPassword "your_db_password";

    
//create the SQL query string
    
$sQuery "Select * from Customers where CustomerId=".$sID;

    
//make the database connection
    
$oLink mysql_connect($sDBServer,$sDBUsername,$sDBPassword);
    @
mysql_select_db($sDBName) or $sInfo "Unable to open database";
        
    if(
$sInfo == '') {
        if(
$oResult mysql_query($sQuery) and mysql_num_rows($oResult) > 0) {
            
$aValues mysql_fetch_array($oResult,MYSQL_ASSOC);
            
$sInfo $aValues['Name']."<br />".$aValues['Address']."<br />".
                     
$aValues['City']."<br />".$aValues['State']."<br />".
                     
$aValues['Zip']."<br /><br />Phone: ".$aValues['Phone']."<br />".
                     
"<a href=\"mailto:".$aValues['E-mail']."\">".$aValues['E-mail']."</a>";
        } else {
            
$sInfo "Customer with ID $sID doesn't exist.";
        }
    }
    
mysql_close($oLink);

?>
    
    <script type="text/javascript">
        window.onload = function () {
            var divInfoToReturn = document.getElementById("divInfoToReturn");
            parent.displayCustomerInfo(divInfoToReturn.innerHTML);
        };

    </script>

</head>
<body>
    <div id="divInfoToReturn"><?php echo $sInfo ?></div>
</body>
</html>
هذا المثال سيعمل كما لو كان المثال في الدرس الثاني او الاول

اما الطريقة الاخرى لأستخدام ال hidden iFrames هي بأنشائهم بطريقة دايناميكية بأستخدام
الجافا سكريبت ,,

الخطوه الاولى لأنشاء الـiFrame هي بأستخدام الدالة document.createElement()

بالشكل التالي :

كود PHP:
        function createIFrame() {
            var 
oIFrameElement document.createElement("iframe");
            
oIFrameElement.width=0;
            
oIFrameElement.height=0;
            
oIFrameElement.frameBorder=0;
            
oIFrameElement.name "hiddenFrame";
            
oIFrameElement.id "hiddenFrame";
            
document.body.appendChild(oIFrameElement);
//more code

السطر الاخير من هذا الكود هو الاهم بين هذه الاسطر والسبب بأن عمله هو ان يقوم
بأضافة ال iFrame الى بنية الملف .
لاحظ بأن id و name قمنا بكتابتهم بدون اختلاف والسبب بأن بعض المتصفحات تقوم
بالولوج الى الـframe بأستخدام الNAME والبعض الاخر بأستخدام الـ ID.

ومن ثم قم بتعريف متغير لتخزين المرجعات من Iframe

انظر للكود مره اخرى الان :

كود PHP:
        var