ايران ويج

نسخه‌ی کامل: Simple Ajax Example
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
خوب اين كد رو اول داخل يه فايل ذخيره كنيد حالا چه پي اچ پي چه اچ تي ام ال
کد php:
<html>
<
head>
<
script language="javascirpt">

function 
xmlhttpPost(strURL) {
    var 
xmlHttpReq false;
    var 
self this;
    
// Mozilla/Safari
    
if (window.XMLHttpRequest) {
        
self.xmlHttpReq = new XMLHttpRequest();
    }
    
// IE
    
else if (window.ActiveXObject) {
        
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
self.xmlHttpReq.open('POST'strURLtrue);
    
self.xmlHttpReq.setRequestHeader('Content-Type''application/x-www-form-urlencoded');
    
self.xmlHttpReq.onreadystatechange = function() {
        if (
self.xmlHttpReq.readyState == 4) {
            
updatepage(self.xmlHttpReq.responseText);
        }
    }
    
self.xmlHttpReq.send(getquerystring());
}

function 
getquerystring() {
    var 
form     document.forms['form1'];
    var 
name form.name.value;
    
qstr 'w=' escape(name);  // NOTE: no '?' before querystring
    
return qstr;
}

function 
updatepage(str){

    
document.getElementById("result").innerHTML str;

}
</
script>
</
head>

<
form name="form1" >
  <
p>Name: <input name="name" type="text" >  
  <
input value="Go" type="button" onclick='javascirpt:xmlhttpPost("b.php")'></p>
  </
form>
<
div id="result"></div>
</
body>
</
html
خوب توضيحات
ما در اول كدمون
کد php:
if (window.XMLHttpRequest) {
        
self.xmlHttpReq = new XMLHttpRequest();
    }
    
// IE
    
else if (window.ActiveXObject) {
        
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    } 
تعييين ميكنيم اگه مرورگر كاربر اينترنت اكسپلورر بود ميگيم از اكتيو ايكس استفاده كنه نه اگه موزيلا يا صفري بود از ايكس ام ال اچ تي تي پي ريكوئست
در خط بعدي :
کد php:
self.xmlHttpReq.open('POST'strURLtrue); 
ميگيم كه اطلاعاتي داريم كه بايد پست بشن همونطور كه ميدونيد دو روش داريم يا گت يا پست ...اگه ما اينجا گت بزاريم فقط قادر خواهيم بود اطلاعات رو دريافت كنيم و نميتونيم هيچ چيزي ارسال كنيم
در خط بعديش ميگيم كه اطلاعات ما داخل يك فرم هستن
کد php:
if (self.xmlHttpReq.readyState == 4) { 
در اين خط ميگيم اگه دريافت اطلاعات موفقيت آميز بود
کد php:
updatepage(self.xmlHttpReq.responseText); 
يعني اگه موفقيت آميز بود اطلاعات جديد رو جايگزين كن و در تابعي كه برا همين منظور هست اطلاعات رو داخل ديو قرار ميديم
کد php:
function updatepage(str){

    
document.getElementById("result").innerHTML str;


كار تابع
کد php:
function getquerystring() {
    var 
form     document.forms['form1'];
    var 
name form.name.value;
    
qstr 'w=' escape(name);  // NOTE: no '?' before querystring
    
return qstr;

اينه كه مياد اطلات رو بصورت كويري دريافت ميكنه
------
حالا ميرسيم به كد اچ تي ام الي كه بايد اينكارو بكنه برامون
کد php:
<form name="form1" >
  <
p>Name: <input name="name" type="text" >  
  <
input value="Go" type="button" onclick='javascirpt:xmlhttpPost("b.php")'></p>
  </
form>
<
div id="result"></div
----
فكر ميكنم همه چيزش واضح هست و نيازي به توضيح نداره , فقط اينكه اطلاعات ما درون تگ ديو با ايدي result قرار ميگيره
حالا بايد صفحه دوم خودمون يعني b.php رو بسازيم
پس يه فايل باز ميكنيم با اين نام و اين كد رو توش قرار ميديم
کد php:
$name=$_REQUEST['w'];
$ip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
print
"Hello <b>$name</b> ,Your Ip Address Is : <b>$ip</b> ,You Are Trying Simple Ajax Example."
اين كد هم كه ديگه خيلي واضح و روشنه
خوب برنامه ما تموم شد تنها كاري كه بايد بكنيد اينه كه تستش كنيد Biggrin
اگه سوالي داشتيد درباره اين مقاله بپرسيد

مهدي صفري
در ضمن اينو خيلي راحت ميتونيد با هرزبون ديگه اي بنويسيد چه دات نت چه پرل
قسمت b.php رو اينطوري هم ميتونيد بنويسيد
کد php:
<?php
$name
=$_REQUEST['w'];
$ip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
if (
$name=="mehdi"){
print
"Hello Dear<b>$name</b> :X ,Your Ip Address Is : <b>$ip</b> ,You Are Trying Simple Ajax Example.";
}else{
print
"hey <b>$name</b> :-| ";
}
?>
ميتونيد اينجا هم نمونه انلاينشو ببينيد
اينم برا دات نت [تصویر:  65.gif]
قسمت اول كد همونه و فقط در قسمت دوم يعني b.php  مينويسيد
کد php:
Dim strName as String
strName 
Request.Form"w" )
response.write("Hello" strName
و البته پرل[تصویر:  105.gif]                            
b.php
کد php:
use CGI;

$myquery = new CGI;

$name $query->param('w');
$ip $query->remote_host();

print 
$myquery->header;
print
"Hello <b>$name</b> ,Your Ip Address Is : <b>$ip</b> ,You Are Trying Simple Ajax Example."
تکنولوژی نو پایی هست . خیلی دوست دارم یاد بگیرم . ممنون. بازم از این کارا بکن Biggrin
راستی کاش اول یه مقاله کوچولو براش میزاشتی که اصلا مخفف چی هست ، برای چی به وجود اومده ، .... ، اونطوری فکر کنم استقبال بیشتری بشه.
اول اين تكنولوژي سرور سايد نيست كلاينت سايد Biggrin
"ميگيم كه اطلاعاتي داريم كه بايد پست بشن همونطور كه ميدونيد دو روش داريم يا گت يا پست ...اگه ما اينجا گت بزاريم فقط قادر خواهيم بود اطلاعات رو دريافت كنيم و نميتونيم هيچ چيزي ارسال كنيم"
فكر كنم اينو اشتباه نوشتي
"راستی کاش اول یه مقاله کوچولو براش میزاشتی که اصلا مخفف چی هست ، برای چی به وجود اومده "
و اما براي چي به وجود اومده توي صفحات معمولي تمام عمليات سمت سرور انجام مي شن و تمام داده ها از سرور گرفته مي شن اين باعث بالا رفتن حجم كار سرور و ترافيك سمت سرور مي شه اين در حاليه كه هزاران كامپيوتر سمت كلاينت ها داريم كه تقريبا هيچ استفاده از اونها نمي شه(كسايي كه دارن صفحات سايت رو مي بينن)
حالا اگه مقداري از كد ها رو توي سمت كلاينت بنويسيم اولا داده هاي فرستاده و در يافت شده به صورت پردازش شده خواهد بود يعني داده اضافه ديگه نمي فرستيم و در يافت كنيم مثلا اگه فقط مي خوايم بگيم كه داده رو در يافت كرديم يك كلمه "Send Complet" رو مي فرستيم نه يه صفحه HTML‌ با كلي عكس و ... در طرف كلاينت هم هر جا دوست داشتيم و به هر شكلي كه دلمون خواست نشون مي ديم اين رو اين كار پردازش سرور رو كم مي كنه پهناي باند سرور رو هم پايين مي ياره و در طرف يوزر هم به علت پهناي باند كمتر مصرف شده سرعت بسيار بالاتري رو خواهيم داشت كه باعث محبوبيت اين تكنولوژي شده
قشنگ ترين تعريفي هم كه ازش ديدم اين بود "Ajax يعني هنر استفاده از XMLHttpRequest"
و اگه بر داشت منو بخواي Ajax يعني برنامه نويسي با JScript
هادی جان ایول !
راستی یه سوال ، گفتی که : "اگه بر داشت منو بخواي Ajax يعني برنامه نويسي با JScript" . مگه با VBscript نمیشه یه XMLHttpRequest ایجاد کرد ؟ یعنی کد سمت کلاینت ما حتما باید جاوا اسکریپت باشه ؟AtQuestion نمیشه گفت Avbax ؟! Tongue
اينم حرفيه فقط بديش اينه كه AJAX هم ديگه بچه بازي مي شه :d
فكر خيلي خوبيه ها خيلي كار رو راحت مي كنه مخصوصا وقتي داري با ASP‌ مي نويسي
ای نامرد ! حالا دیگه هر چی وی بی شد ، بچه بازی شد !؟Biggrin
:d
بابا چت كه نمي كنيم بزار جوهرش خشك شه :d
والا آخه اين سبزي فروش سر كوچه ما هم vb‌ كار مي كنه ولي ايده بسي جالبي بود يه بار بايد تست كنم
سلام ،
منم گفتم در این باره یه ابراز وجود بکنم به دلیل اینکه من هم فوق العاده به این تکنولوژی نه چندان جدید ! (قابل توجه امیرجان) علاقه مند شدم .
AJAX خیلی جدید نیست ، فقط کمتر مورد توجه و استفاده قرار میگرفته .

راستی در مورد مثالی که مهدی جان ارائه داد از متد POST استفاده شده بود، ساده تر از اون استفاده از متد GET است که کدش رو براتون میزارم.

راستی یه پورتال جستجوگر بانک اطلاعاتی نوشتم که بی ارتباط به بحث نیست چون تا حد امکان سعی کردم از این تکنولوژی استفاده کنم مخصوصا بخش مدیریتیش که کار مدیر رو بسیار راحت و سریع کرده .
نسخه آزمایشی اون رو در اینجا مشاهده کنید:
http://www.ahwazserver.net/dbsearch
ورود به بخش مدیریت:
http://www.ahwazserver.net/dbsearch/admin
user: admin
pass: ahwazserver
(به بخش مدیریت مورد جزئی و کلی توجه کنید ، افزودن ، ویرایش، حذف و ...)
به نظرتون چند قیمت روش بزارم ؟!

تشکر
نبی
صفحه‌ها: 1 2