article

ارسال اطلاعات فرم با ای جکس (Ajax) و نمایش پیام در حال پردازش

ajax

در آموزش های مقدماتی ای جکس (Ajax) گفتیم که چگونه می توان اطلاعات یک فرم را با متد GET یا POST برای یک فایل PHP ارسال و نتایج حاصل از پردازش آنها را بدون رفرش شدن صفحه به کاربر نشان داد که در واقع این فرآیند فلسفه پیدایش تکنیک Ajax است، در این مطلب می خواهیم کمی از تئوری فاصله گرفته و کدی کاربردی را قرار دهیم که به کمک آن بدون استفاده از کتابخانه هایی مانند جی کئوری (jQuery) و دردسرهایش، تنها بر مبنای ای جکس صرف (Pure Ajax) اطلاعات یک فرم HTML را به صورت پیشرفته ارسال و علاوه بر آن حالت در حال پردازش (loading یا processing) را نیز با تصویر و متن نمایش دهیم، به این ترتیب می توانیم در طراحی رابط کاربری (User Interface) صفحات وبی که مبتنی بر ای جکس هستند گام مثبتی برداشته و آخرین وضعیت پردازش درخواست را به اطلاع کاربر برسانیم.

کد HTML، دستورات CSS، JavaScript و Ajax


مانند آنچه در آموزش های مقدماتی دیدیم صفحات مبتنی بر تکنیک Ajax از سه قسمت کدهای سمت کاربر (کدهای HTML، CSS، JavaScript و...)، سمت سرور (برنامه نویسی به زبان PHP، ASP.NET و...) و رابط بین سمت کاربر و سمت سرور یعنی توابع Ajax تشکیل شده اند، از این رو برای ارسال و دریافت اطلاعات بین سمت کاربر و سمت سرور ابتدا باید بخش مربوط به کدنویسی HTML، CSS، JavaScript و Ajax را مشابه با نمونه کد زیر انجام دهیم:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | ارسال اطلاعات فرم با ای جکس</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
label{
    width:100px;
    display:inline-block;
}
</style>
<script type="text/javascript">
var div_id = 'show-result';
var loading_message = '<img src="loading.gif" alt="loading" height="16" width="16"> لطفا کمی صبر کنید...';

function ajaxRequest(){
    var xmlHttp;
    try{
        xmlHttp = new XMLHttpRequest();
        return xmlHttp;
    } catch (e){
        try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            return xmlHttp;
        } catch (e){
            try{
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                return xmlHttp;
            } catch (e){
                alert('مرورگر شما از ای جکس پشتیبانی نمی کند!');
                return false;
            }
        }
    }
}

function formGet(form, url){
    var post_str = getFormValues(form);
    //alert(post_str);
    postData(url, post_str);
}

function postData(url, parameters){
    var xmlHttp = ajaxRequest();
    
    xmlHttp.onreadystatechangefunction(){
        if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){
            document.getElementById(div_id).innerHTML = loading_message;
        }
        if(xmlHttp.readyState == 4){
            document.getElementById(div_id).innerHTML = xmlHttp.responseText;
        }
    }
    
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(parameters);
}

function getFormValues(form){
    var str = '';
    for(var i = 0;i < form.elements.length;i++){
        switch(form.elements[i].type){
            case 'text':
            str += form.elements[i].name +
            '=' + encodeURI(form.elements[i].value) + '&';
            break;
            case 'textarea':
            str += form.elements[i].name +
            '=' + encodeURI(form.elements[i].value) + '&';
            break;
            case 'select-one':
            str += form.elements[i].name +
            '=' + form.elements[i].options[form.elements[i].selectedIndex].value + '&';
            break;
            case 'checkbox':
            if(form.elements[i].checked == true){
                str += form.elements[i].name +
                '=' + form.elements[i].value + '&';
            } else{
                str += form.elements[i].name +
                '=' + '0' + '&';
            }
            break;
        }
    }
    str = str.substr(0, (str.length - 1));
    return str;
}
</script>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیر فعال است!
<br>
</noscript>

<form name="form-name" action="#">
<label for="name">نام: </label>
<input id="name" name="name" type="text" size="50" placeholder="نام خود را وارد کنید">
<br>
<br>
<label for="email">پست الکترونیک: </label>
<input id="email" name="email" type="text" size="50" placeholder="پست الکترونیک خود را وارد کنید">
<br>
<br>
<label for="number">انتخاب شماره: </label>
<select id="number" name="number">
<option value="1">1</option>
<option value="2">2</option>
</select>
<br>
<br>
<label for="check">تایید: </label>
<input id="check" name="check" type="checkbox" value="1">
<br>
<br>
<input name="send" type="button" value="ارسال" onclick="formGet(this.form, 'ajax-post-form.php');">
</form>
<div id="show-result"></div>
<hr>
پس از کلیک بر روی دکمه ارسال، تابع جاوا اسکریپتی formGet اجرا شده و فرآیند درخواست ای جکس شروع می شود، در نهایت نتیجه در بلاک div با آی دی فرضی show-result نمایش داده خواهد شد، یکی از بخش های مهم این کد ارسال آبجکت فرم با تابع formGet و استفاده از آن در تابع getFormValues است، از این آبجکت برای دسترسی به زیرمجموعه های تگ form مورد نظر استفاده خواهیم کرد.
</body>
</html>
این کدها را در فایلی با نام دلخواه و پسوند html یا php ذخیره کنید.
توضیح:
- اولین تابعی که پس از کلیک بر روی دکمه ارسال فراخوانی می شود formGet است که دو آرگیومنت دارد، آرگیومنت اول آبجکت فرم و آرگیومنت دوم نام فایلی است که اطلاعات به آن ارسال خواهد شد.
- اطلاعات به فایلی در سرور با نام ajax-post-form.php ارسال و نتیجه از آن دریافت می شود، در طی این فرایند متغیر loading_message در حالتی که متد xmlHttp.readyState بین 0 تا 4 است در خروجی چاپ و پیامی مبنی بر در حال پردازش بودن درخواست ای جکس به همراه تصویر متحرک نشان داده می شود.
- تابع ajaxRequest برای ایجاد ساز و کار ارسال درخواست و دریافت پاسخ به شیوه ای جکس است که با مرورگرهای مختلف سازگار شده و نهایتا اگر سیستم کاربر نتواند درخواست را ارسال کند پیامی مبنی بر پشتیبانی نکردن مرورگر از ای جکس نشان داده خواهد شد.
- متدی که در کد استفاده شده متد POST است، در خصوص تفاوت متد GET و POST در آموزش های مقدماتی صحبت کردیم، در اینجا نکته مهم این است که باید در سمت سرور نیز با متد POST پارامترها را دریافت کنیم.
- تابع getFormValues اطلاعات فیلدهای فرم را بر اساس نوع آنها دریافت و به عنوان نتیجه در نهایت به صورت یک رشته متنی برمی گرداند، این اطلاعات در تابع formGet به عنوان پارامتر در تابعی دیگر با نام postData و متغیر post_str استفاده می شوند که در نهایت از آن در قسمت xmlHttp.send جهت ارسال پارامترهای اطلاعاتی در قالب متد POST استفاده می کنیم، نمونه:
name=your-name&email=your@email.com&number=1&check=1
- برای سازگاری با یونیکد utf-8 (پشتیبانی از زبان فارسی) و جلوگیری از مشکلات احتمالی در ارسال اطلاعات فرم از طریق ای جکس از تابع encodeURI استفاده کرده ایم، این تابع مقادیر فیلدها را جهت استفاده در درخواست ای جکس به صورت کاراکترهای استاندارد utf-8 تبدیل می کند.

دستورات PHP جهت دریافت و پردازش درخواست ای جکس


با استفاده از کدهای PHP زیر مقادیر ارسال شده از درخواست مبتنی بر ای جکس را دریافت، پردازش و خروجی را به عنوان پاسخ ارسال می کنیم، همان طور که مشخص است در این قسمت نیز از متد POST استفاده کرده ایم.
<?php
$name = @$_POST['name'];
$email = @$_POST['email'];
$number = @$_POST['number'];
$check = @$_POST['check'];

echo "نام شما: $name <br>";
echo "پست الکترونیک شما: $email <br>";
echo "شماره انتخاب شده: $number <br>";
echo "وضعیت تایید: $check <br>";
?>
پیش نمایش
این کدها را نیز در فایلی با نام ajax-post-form.php ذخیره و در کنار فایل قبلی (کدهای سمت کاربر) قرار دهید، با درک این ساختار ساده به راحتی می توانیم در برنامه های کاربردی و پیچیده تر موارد دلخواه خود را ایجاد و کد را سفارشی سازی کنیم.
sectionدسته بندی: آموزش کاربردی » Ajax
related مطالب بیشتر:
» ساخت قابلیت امتیازدهی با PHP و Ajax
» اعتبار سنجی همزمان فرم با آژاکس (Ajax) و PHP
» نمایش نتایج پایگاه داده MySQL با PHP و ای جکس (Ajax)
» نمایش داینامیک و صفحه به صفحه مطالب با ای جکس (Ajax)
» آموزش نحوه آپلود فایل با PHP و آژاکس (Ajax)
commentنظرات (۳۷ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: komeil
زمان: ۱۷:۵۴:۴۸ - تاریخ: ۱۳۹۲/۰۸/۰۱
سلام
اگه بخوايم مقاديري كه توسط فيلد file ارسال ميشه رو هم اضافه كنيم چه بايد بكنيم؟
پاسخ: 
سلام
در حال حاضر آپلود فایل با Ajax عملا خیلی متصور نیست، باید از روش های جایگزین (مانند iframe) یا از فریم ورک جی کئوری برای این منظور استفاده کنید که به سادگی حالت معمول نیست.
نویسنده: مهران
زمان: ۱۶:۰۹:۲۴ - تاریخ: ۱۳۹۲/۱۱/۰۵
سلام در بالا برای حل مشکل ارسال فیلد ها پسورد و هیدن گفته شد باید از دو کیس زیر استفاده بشه یعنی:
case "hidden":
str += formobj.elements[i].name +
"=" + encodeURI(formobj.elements[i].value) + "&";
break;
case "password":
str += formobj.elements[i].name +
"=" + encodeURI(formobj.elements[i].value) + "&";
break;
ولی وقتی از این کیس ها استفاده کردم اتفاقی نیفتاده و باز فیلد پسور ارسال نمیشه
پاسخ: 
دستورات تست شده و مشکلی ندارد، به احتمال قوی اشتباهی در قرار دادن یا استفاده از کد کرده اید.
نویسنده: علی
زمان: ۲۳:۴۵:۴۸ - تاریخ: ۱۳۹۲/۱۱/۱۳
سلام خسته نباشید
کد زیر برای من کار نمیده و ارسال پارامتر ندارد
میشه راهنمایی بفرمایید من کجای اون مشکل دارم
ممنونم خیلی زیاد
حذف شد
پاسخ: 
کد از نظر Ajax مشکلی ندارد، امکان دارد مورد از آی دی در نظر گرفته شده برای بلاک خروجی یا مواردی دیگر باشد (باید به همراه فایل ajax.php و کدهای کامل صفحه تست شود).
نویسنده: الیاس
زمان: ۱۲:۳۵:۰۷ - تاریخ: ۱۳۹۲/۱۱/۱۹
سلام
من یه فرم درست کردم با html 5 و با خصوصیات خود 5html اعتبار سنجی کردم و می خوام فرمم آژاکس هم باشه ولی اعتبار سنجی با html 5 دکمه ای از نوع submit نیاز داره ولی آژاکس نیاز به button داره
<input type="button" name="Send" value="ارسال" onclick="formget(this.form, 'ajax-post-form.php');" />
الان مجبورم یا قید آژاکس رو بزنم یا قید اعتبار سنجی با html
میشه راهنمایی کنید.
پاسخ: 
می توانید تابع Ajax خود را در رویداد onsubmit و در تگ form فراخوانی کنید، اجباری به استفاده از button نیست (لطفا در این رابطه در وب جستجو کنید).
نویسنده: الیاس
زمان: ۱۲:۰۵:۰۰ - تاریخ: ۱۳۹۲/۱۱/۲۱
من از رویداد onsubmit تست کرده بودم جواب نمی داد
پاسخ: 
"جواب نمیداد" دلیل بر امکانپذیر نبودن نیست! احتمالا در کدنویسی یا روش شما خطا یا اشتباهی وجود دارد.
نویسنده: mojtaba
زمان: ۰۲:۳۵:۴۳ - تاریخ: ۱۳۹۳/۰۱/۰۹
سلام ..
من با رویداد onchange یک مقدار ارسال می کنم که جواب هم می گیرم ولی وقتی میخوام دو مقدار ارسال کنم ، مقدار دوم نمیدونم چطوری باید ارسال کنم، دستور زیر امتحان کردم ولی مقدار دریافت نکردم
var idnewes = document.getelementbyid('idnews').value
پاسخ: 
سوالتان واضح نیست! دو مقدار را از چه طریق ارسال می کنید؟!
کدی که نوشتید صرفا مقادیر value را از تگ input با آی دی تعیین شده دریافت می کند و کار بیشتری انجام نمی دهد!
نویسنده: meysam
زمان: ۱۳:۰۳:۰۸ - تاریخ: ۱۳۹۳/۰۱/۱۶
سلام
از لطفتون ممنونم
مشکلم حل شد
موفق باشید
نویسنده: negar
زمان: ۲۲:۵۹:۳۱ - تاریخ: ۱۳۹۳/۰۲/۰۹
سلام . ممنون از سایت مفیدتون
من یک صفحه گذاشتم که کاربر با استفاده از لیست باکس انتخاب میکنه اطلاعات مربوط به کدام قسمت را میخواد مشاهده کنه که زیر انتخابش نتیجه را میبینه (با آژاکس) حالا من میخوام وقتی روی هر کدام از اطلاعات که کلیک میکنه بتونه قسمت پایین همین صفحه ادیت کنه (با آژاکس) اما وقتی دکمه ویرایش را میزنم به صفحه اول برمی گرده (صفحه انتخاب از لیست باکس) لطفا راهنماییم کنید
پاسخ: 
مشکلتان با صرف توضیحات قابل حل نیست، باید فایل ها را به صورت ZIP به ایمیل ما (موجود در بخش تماس) به همراه توضیحات ارسال کنید تا دقیقا بتوانیم بررسی کنیم.
نویسنده: الیاس
زمان: ۲۰:۳۶:۱۳ - تاریخ: ۱۳۹۳/۰۳/۱۵
سلام
من می خوام در فرم از شی select-multiple استفاده کنم
ولی فقط یکیش رو ارسال می کنه
کد زیر رو براش نوشتم
case "select-multiple":
str += formobj.elements[i].name +
"=" + formobj.elements[i].options[formobj.elements[i].selectedIndex].value + "&";
break;
پاسخ: 
سلام
برای انتخاب مقادیر چندگانه باید از حلقه for استفاده کنید:
case "select-multiple":
str += formobj.elements[i].name + "=";
for(var m = 0; m < formobj.elements[i].length; m++){
if(formobj.elements[i].options[m].selected){
str += formobj.elements[i].options[m].value + "|";
}
}
str += "&";
break;
توجه کنید که مقادیر به صورت فرضی param=1|2|3 ارسال می شود، یعنی در سرور باید مقادیر پارامتر را با توابعی مانند explode تجزیه و به آرایه تبدیل کنید.
نویسنده: جومونگ
زمان: ۱۴:۰۴:۵۹ - تاریخ: ۱۳۹۳/۰۴/۲۴
سلام من می خواهم کد را جوری تغییر بدم که کاربر به جای کلیک روی تگ دکمه روی تگ span کلیک کنه و دقیقا همین اتفاق ها بیفتد. اما گذاشتن رویداد onclick روی تگ span جواب نداد. لطفا مرا راهنمایی کنید.
پاسخ: 
در تئوری هیچ مشکلی برای این کار نیست، لذا مشکل از نحوه استفاده یا به فرض در نظر نگرفتن استایل مناسب برای تگ span است که فضای قابل کلیک را شامل شود (نیاز به بررسی نمونه کد است).
نویسنده: farshad
زمان: ۰۰:۱۰:۳۱ - تاریخ: ۱۳۹۳/۰۵/۲۶
سلام چطوری میشه این کد رو طوری نوشت که بیاد دیتابیس رو چک کنه در صورت انتخاب یک فیلد از دیتابیسی توسط کاربر یک فیلد را دیگر را بدون رفرش نشون بده؟
پاسخ: 
سوال کلی است!
قاعدتا باید برنامه نویسی PHP و کار با MySQL بلد باشید، درخواست Ajax صرفا یک یا چند پارامتر در چارچوب متد POST یا GET به سرور ارسال و نتیجه را برمی گرداند، اینکه چگونه در سرور از این مواد خام استفاده کنیم به خودمان و هدف برنامه بستگی دارد، به عبارتی عمده کار شما با PHP و MySQL است.
نویسنده: رضا
زمان: ۱۴:۲۲:۰۲ - تاریخ: ۱۳۹۳/۰۶/۰۳
با سلام
می خواستم بدونم چه تغییراتی رو باید در کد بالا انجام بدم تا بتونم فرم زیر رو با آژاکس ارسال کنم
<form  enctype="multipart/form-data" action="engine.php" method="post" >
<label>فایل پیوست را انتخاب نمایید:</label>
<input type="file" name="file" />
<input type="submit" value="آپلود" />
</form>
برای مثال اولین تغییری که باید در کد بالا بدیم این هست که بای جای application/x-www-form-urlencoded از multipart/form-data استفاده کنیم.
پاسخ: 
در حال حاضر Ajax قابلیت پشتیبانی از آپلود فایل را ندارد، تنها راه حل استفاده از فریم ورک هایی مانند جی کئوری است.
نویسنده: مرتضی
زمان: ۲۱:۴۱:۲۰ - تاریخ: ۱۳۹۳/۰۸/۲۰
با سلام
آموزش خیلی خوبی بود. واقعاً به دردم خورد. الآن دارم روش کار میکنم. فقط یه سوال داشتم
من از دو تا تگ select استفاده کردم. با انتخاب یک مورد از سلکت اول ، آپشن هایی به سلکت دوم وارد میشه.
(آی دی showresult رو گذاشتم رو select دوم.)
الآن تصویر loading نمایش داده نمیشه. چجوری میتونم این تصویر رو به صورت جدا ، کنار select دوم قرار بدم ؟!

با تشکر فراوان
پاسخ: 
این آموزش صرفا یک نمونه است تا شما با اصول کار آشنا شوید، اینکه چگونه بر اساس نیاز خود از آن استفاده کنید بستگی به درک مبنای کار توسط شما دارد، با این تفاسیر باید ببینید علت عدم نمایش تصویر لودینگ چیست و کجای کار را اشتباه انجام داده اید، راه حل دیگر این است که نمونه کدهای خود را در یک صفحه قرار داده و آدرس آنلاین آن را ارسال کنید تا بررسی گردد (حل اینگونه مشکلات بدون دیدن و تست سورس کدها عملا غیر ممکن است!).
نویسنده: علی
زمان: ۱۳:۵۴:۵۵ - تاریخ: ۱۳۹۴/۰۲/۱۹
با سلام و تشکر از سایت خوبتون.
مشکل من با اینترنت اکپلورر ویندوز سون هست.در حالت متد گت مشکلی نداره ولی در حالت متد پست هیچ داده ای به سمت صفحه ی هدف نمی فرستد.با مرورگر های اپرا و فایرفاکس تست شد مشکلی نبود. در نرم افزار feddler
اطلاعات به این شکل است.
Content-Length: 0
سرچ کردن توی سایت استک اور فلو هم تعدادی همین مشکل را داشتند ولی راه حل مناسبی هنوز ندیدم
پاسخ: 
هرچند رفع مشکل نیاز به تست و دیدن سورس کدهای شما دارد، اما ظاهرا این مشکل زمانی است که بخواهید از یک فرم در یک دامنه یا لوکال هاست اطلاعات را به یک دامنه (سرور) دیگر ارسال کنید و مرورگر در این حالت خطای امنیتی می دهد.
نویسنده: amin
زمان: ۱۴:۳۴:۳۷ - تاریخ: ۱۳۹۴/۰۴/۰۷
ممنون بابت آموزش عالی که گذاشتید
وقتی میخوام در فایل php یا همان ajax-post-form.php از کدهای زیر استفاده کنم فقط همان کد مورد نظر درست عمل نمیکنه و بقیه اطلاعات رو درست دریافت میکنه
<script type="text/javascript" language="javascript">window.open("user","_self");</script>
و یا کد header درست عمل میکنه اما به صفحه منتقل نمیشه و مانند include عمل میکنه
با تشکر فراوان بابت وقتی که میگذارید و به سوالات زیاد بنده پاسخ داده اید
پاسخ: 
هرچند دقیقا متوجه منظورتان نشدیم، اما اگر می خواهید پس از ارسال درخواست به سمت سرور (فایل PHP) یک سری دستورات اجرا کنید، باید چند نکته را مد نظر داشته باشید:
- امکان اجرای دستورات جاوا اسکریپت در فایل PHP در هنگام پردازش کدها در سرور وجود ندارد، کدهای جاوا اسکریپت زمانی قابل اجرا هستند که در مرورگر باشند.
- دستورات header در درخواست Ajax کاربردی ندارد، اگر به فرض باید صفحه پس از ارسال درخواست رفرش شود، می توانید پاسخ سرور را دریافت و سپس در مرورگر و با استفاده از دستورات جاوا اسکریپت کاربر را به مقصد مورد نظر خود منتقل کنید (باید نحوه مدیریت درخواست Ajax با JavaScript را بلد باشید).
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




7 × 6
 refresh
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشد که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
آخرین دیدگاه ها
form adel
در:
سلام با تشکر از سایت خوب شما. یه سوال داشتم چگونه تمام این کدها را در جاوا اسکریپت همزمان قرار دهیم. من مثلا دستور این...
۲۱:۲۵:۴۰ ۱۳۹۸/۰۸/۲۴

form یه سوال کننده
در:
سلام. ببخشید چطور میشه ایمیل هایی رو میفرستن که ریپلای زدن رو ایمیلی که از طرف ما نبوده بیشتر تو تبلیغات دیدم امیدوارم منظورم و...
۰۳:۲۳:۰۸ ۱۳۹۸/۰۸/۲۴

form پرتو
در:
با عرض سلام و خسته نباشید امیدوارم حالتون خوب باشه من دو سه سال پیش وبلاگم رو حذف کردم ایا امکانش هست برگرده؟ ادرس...
۱۴:۵۵:۵۲ ۱۳۹۸/۰۸/۲۰

form علی
در:
سلام من نمی تونم html tag رو چطور در وبلاگم قرار بدم وبلاگم اینه
tagtak.blog.ir
۱۰:۲۳:۳۴ ۱۳۹۸/۰۸/۲۰

form حمید
در:
سلام. خسته نباشید. من میخاستم استایل فیلدهای فرمم رو تغییر بدم منتهی نمیدونم از چه کدهایی باید استفاده کنم. برای اینکه فرمی به شکل...
۱۰:۳۶:۱۹ ۱۳۹۸/۰۸/۱۹

form سمیه
در:
سلام ممنون بابت آموزش مفیدتون توی تگ ها هرچیزی که در تگ head قرار بگیره نمایش داده نمیشه، اما ممنون میشم...
۲۰:۴۹:۲۳ ۱۳۹۸/۰۸/۱۷

form استادمجازی
در:
سلام. از ادمین عزیز و همگی دعوت می کنم آموزش های خوبتون را بصورت آموزش ویدیویی یا صوتی و... در سایت ostadmajazi.com استادمجازی ...
۲۲:۱۲:۲۳ ۱۳۹۸/۰۸/۱۳

form mohamad
در:
سلام و خسته نباشید ، توی فرمی که ساختم چند تا drop down دارم که میخوام با php براشون شرط بذارم به طوری...
۱۳:۵۱:۳۴ ۱۳۹۸/۰۸/۱۰

form رضا
در:
خسته نباشید این جلسه آخر html بود؟؟؟؟
۰۱:۱۵:۰۷ ۱۳۹۸/۰۸/۱۰

form امیرمحمد
در:
سلام و خسته نباشید استاد بنده میخوام بین دو کد زیر که مشخص کردم رو به دست بیارم
// ---------------------set سلام...
۱۹:۳۰:۵۳ ۱۳۹۸/۰۸/۰۸

form حجت
در:
خیلی ممنونم از لطف شما. اوکی شد.
۱۰:۲۸:۳۵ ۱۳۹۸/۰۸/۰۶

form میلاد
در:
آشنایی نسبی با css, php و ajax دارم و نمیخام از library های موجود در نت استفاده کنم. خواستم با همین متد که انصافا روان...
۲۳:۲۲:۵۵ ۱۳۹۸/۰۸/۰۵

form عرفان
در:
با سلام. مدتی بود که بدلایل مشکلات زیاد نتونستم به وبلاگم رسیدگی کنم ولی وقتی برگشتم میبینم که هزاران بازدید داشتم و همشونم به زبان...
۲۲:۴۹:۴۴ ۱۳۹۸/۰۸/۰۵

form raha
در:
سلام وقتتون بخیر ببخشید علامت @ در کل به چه معناست ممنون میشم پاسخ دهید
۲۰:۱۲:۵۹ ۱۳۹۸/۰۸/۰۵

form میلاد
در:
باسلام تشکر از مطالب روان و پرکاربردتان. در خصوص آموزش مذکور، نحوه و ترفند نمایش محور عمودی در سمت چپ نمودار (مشابه...
۰۲:۳۸:۴۰ ۱۳۹۸/۰۸/۰۵