پنجشنبه ۲۸ تیر ۱۴۰۳

Thursday, July 18, 2024 GMT +3:30

کار با تگ فرم (form) در HTML

html-form

تقریبا در هر سایت یا وبلاگی و به طور کل در هر صفحه وبی عناصری تعاملی وجود دارد که کاربر می تواند نسبت به آنها عکس العمل داشته باشد، به طور مثال بر روی دکمه ای کلیک کند یا از بین گزینه های مربوط به نظرسنجی یک مورد را انتخاب نماید، شکل برجسته این عناصر تعاملی فیلد ها و فرم هایی هستند که کاربران با تکمیل اطلاعات آنها و با کلیک بر روی دکمه ارسال، مقادیری را به سرور و پایگاه داده سایت یا وبلاگ مورد نظر ارسال می کنند، از آنجایی که این نوع امکانات در صفحات وب، وابسته به تگ form و عناصر زیرمجموعه آن است، لذا فراگیری دقیق این مبحث می تواند در آینده نزدیک دید شما را نسبت به تکنولوژی وب عمیق تر و چه بسا یک قدم به سمت برنامه نویسی حرفه ای نزدیک تر کند.

تگ form در html


همان طور که پیش تر گفتیم، تگ فرم با هدف ایجاد قابلیت های تعاملی (دکمه، فیلدهای متنی، امکان آپلود فایل و...) برای صفحات html تعریف شده است، در واقع کنسرسیوم جهانی وب یا w3c این نکته را مد نظر داشته که صفحات وب باید از قابلیت ارتباط دو سویه برخوردار باشند، یعنی همان طور که به فرض مدیران یک سایت می توانند مطالبی در آن منتشر کنند، کاربران نیز باید بتوانند در محتوای آن مشارکت داشته یا از قابلیت های آن به صورت سفارشی استفاده نمایند، به این ترتیب و به تدریج عناصر و ویژگی های تعاملی که شباهت های زیادی با هم داشتند در قالب یک تگ با عنوان فرم (form) و زیرمجموعه های آن معرفی شد.
یک فرم ساده به صورت زیر در html تعریف می شود.
<form>
</form>
تگ form به تنهایی کاربردی ندارد و تنها معرف ایجاد یک امکان تعاملی ار نوع فرم است، لذا این تگ را با موارد زیر تکمیل می کنیم.

خاصیت action در form


از آنجایی که اطلاعات یک فرم html پس از تکمیل شدن باید به یک فایل در سرور ارسال شود، خاصیت action برای تعیین آدرس فایل مقصد مورد استفاده قرار می گیرد، به طور مثال اطلاعات فرم زیر (در صورت ارسال) به یک فایل با نام get.php فرستاده خواهد شد.
<form action="user/comment/get.php">
</form>
مقادیر خاصیت action می تواند به صورت آدرس کامل (با //:http) یا به صورت آدرس دایرکتوری (مانند مثال بالا) در نظر گرفته شود.

خاصیت method در form


در کنار action که مقصد اطلاعات یک فرم را معیین می کند، خاصیت method شیوه ارسال را مشخص می کند، این شیوه می تواند به یکی از دو شکل post یا get (حالت پیش فرض) باشد، در متد post، اطلاعات دور از چشم ما و به صورت پنهانی، در پس زمینه به سرور ارسال می شوند اما در متد get، اطلاعات در نوار آدرس مرورگر قابل مشاهده هستند و به صورت پارامترهایی به همراه مقادیر به سرور ارسال می شوند، متد post برای ارسال مقادیر طولانی، اطلاعات حساس کاربری، آپلود فایل و... کاربرد دارد و متد get بیشتر برای ارسال اطلاعات کوتاه و با حساسیت کمتر به کار می رود.
<form action="user/comment/get.php" method="get">
</form>
نکته: متد get و post هر دو از شیوه های استاندارد HTTP برای نقل و انتقال اطلاعات هستند و در برخی زبان های برنامه نویسی مانند Ajax یا فریم ورک های مربوط به آن (مانند jQuery) ممکن است کارکردی مشابه داشته باشند، لذا تفاوت های عنوان شده در آموزش، حالت معمول و کدنویسی html را مد نظر دارد.

تگ های زیرمجموعه form


همان طور که اشاره شد، تگ form به تنهایی قابلیت خاصی در اختیار کاربران قرار نمی دهد، بلکه با کمک تگ ها و خاصیت های دیگر است که امکانات بالقوه آن قابل استفاده است، این تگ ها به طور کلی شامل input، select و textarea می شوند که در زیر کاربرد آنها توضیح داده شده است.
- تگ input: با خاصیت هایی که می پذیرد برای ایجاد دکمه های رادیویی، فیلدهای متنی (متن کوتاه)، دکمه ارسال، فیلدهای مربوط به کلمه عبور، فیلد آپلود فایل و... کاربرد دارد، تگ input باید به صورت یکتا استفاده شود.
- تگ select: تگ select در کنار تگ option قابلیت ایجاد منوهای بازشونده و انتخاب یک یا چند مورد را فراهم می کند، تگ select باید به صورت جفتی استفاده شود.
- تگ textarea: برای ایجاد فیلدهای ورود متن (متن طولانی) کاربرد دارد، تگ textarea باید به صورت جفتی استفاده شود.

تگ input در form


اصلی ترین تگی که به همراه تگ form در ایجاد قابلیت های تعاملی نقش دارد، input است که با تنظیم type های مختلف برای آن می توان انواع مختلفی از امکانات نظیر فیلد متنی (text)، فیلد کلمه عبور (password)، دکمه معمولی (button)، دکمه ارسال (submit) و ... را ایجاد کرد، در زیر چند نمونه اولیه از نحوه تعریف و به کارگیری تگ input را ملاحظه می کنید.
<form action="user/comment/get.php" method="get">
<input type="button" />
<input type="checkbox" />
<input type="hidden" />
<input type="password" />
<input type="submit" />
<input type="text" />
</form>
مقادیری که تگ input برای خاصیت type می پذیرد و کاربرد آنها به صورت خلاصه در زیر عنوان می شود.

نوع button


برای ایجاد دکمه های ساده به کار می رود، یک دکمه معمولی باید به همراه دستورات جاوا اسکریپت تکمیل شود در غیر این صورت به خودی خود کاربردی ندارد، به طور مثال:
<form action="user/comment/get.php" method="get">
<input type="button" value="دکمه" onclick="javascript:alert('دکمه در تگ فرم باید با دستورات جاوا اسکریپت تکمیل شود')" />
</form>

نوع checkbox


از این مقادیر به همراه تگ input برای ایجاد باکس های قابل تایید (چک باکس) استفاده می شود، مثال:
<form action="user/comment/get.php" method="get">
<input type="checkbox" checked="checked" name="choose" value="1" />
</form>
اگر به مثال های بالا دقت کرده باشید، هر مقادیر زیرمجموعه، می تواند تنظیمات به خصوصی نیز داشته باشد، به فرض وقتی برای چک باکس از پارامتر checked استفاده می شود، یعنی حالت پیش فرض آن را به صورت انتخاب شده تنظیم می کنیم، یا پارامتر name باعث می شود تا اطلاعات فرم پس از ارسال در سرور قابل دریافت باشد (اطلاعات هر تگ با نام آن قابل شناسایی است).
نکته: خاصیت value برای دکمه ها، صرفا حالت نمایشی دارد، اما برای سایر موارد به عنوان مقادیر پیش فرض، به سرور ارسال می شود.

نوع file


برای آپلود یک فایل به سرور استفاده می شود، به طور مثال:
<form action="user/comment/get.php" method="get" enctype="multipart/form-data">
<input type="file" name="file-name" accept="image/gif,image/jpg,application/pdf" />
</form>
برای اینکه نوع file به درستی عمل کند، باید enctype (رمزنگاری) را با مقادیر multipart/form-data به تگ form اضافه کنیم.
نکته: پارامتر اختیاری accept مشخص کننده فرمت های مجازی است که از طریق فیلد، قابل آپلود هستند، این فرمت ها بر اساس استاندارد MIME یا (Multipurpose Internet Mail Extensions) مشخص می شوند، اگرچه MIME در اصل استانداردی برای نقل و انتقال اطلاعات از طریق ایمیل در وب است، اما برای صفحات وب نیز کاربرد دارد، برای کسب اطلاعات بیشتر می توانید در لینک زیر لیست تقریبا کاملی از فرمت ها و معادل آنها در استاندارد MIME را ملاحظه کنید.
لیست فرمت ها و معادل آنها در استاندارد MIME

نوع hidden


برای ایجاد فیلدهای مخفی کاربرد دارد، مقادیر فیلدهای مخفی ثابت است و بدون تغییر کاربر به سرور ارسال می شود، مثال:
<form action="user/comment/get.php" method="get">
<input type="hidden" name="hidden-name" value="1" />
</form>
نوع hidden کاربردهای خاصی دارد، به طور مثال با تنظیم یک فیلد مخفی، می توان از ارسال شدن یک فرم اطمینان حاصل کرد یا برخی بررسی های امنیتی را با آن انجام داد.

نوع image


از نوع image برای ایجاد یک دکمه ارسال فرم (که خود از یک تصویر به عنوان پس زمینه استفاده می کند) استفاده می شود، مثال:
<form action="user/comment/get.php" method="get">
<input type="image" src="image/image.jpg" alt="submit" />
</form>
نکته: نوع image علاوه بر ارسال فرم، مختصات موقعیت خود در صفحه را نیز به سرور ارسال می کند، این مختصات به صورت دو پارامتر X و Y دریافت می شوند که هر کدام با یک مقدار عددی موقعیت افقی و عمودی تصویر را در صفحه مشخص می کنند.

نوع password


از نوع password برای ایجاد فیلدهای کلمه عبور (ستاره ای) استفاده می شود، مثال:
<form action="user/comment/get.php" method="get">
<input type="password" name="pass" maxlength="25" />
</form>
اگر در مثال بالا دقت کرده باشید، یک پارامتر دیگر نیز به فرم خود اضافه کرده ایم، این پارامتر maxlength نام دارد که از آن برای تعیین حداکثر کاراکتر مجاز یک فیلد (معمولا فیلد متنی و پسورد) استفاده می شود.
نکته: استفاده از نوع password در فرم های وب (فیلدهای کلمه عبور) از لحاظ حفظ امنیت کاربران اهمیت زیادی دارد.

نوع radio


از نوع radio برای ایجاد دکمه های رادیویی تایید شونده در فرم های وب استفاده می شود، مثال:
<form action="user/comment/get.php" method="get">
<input type="radio" name="radio-box" value="1" />
</form>

نوع reset


نوع reset برای ایجاد یک دکمه که با کلیک بر روی آن اطلاعات فیلدها به حالت پیش فرض برمی گردد کاربرد دارد، مثال:
<form action="user/comment/get.php" method="get">
<input type="reset" value="نوشتن از نو" />
</form>
نکته: استفاده از این قابلیت باید با دقت انجام شود، چرا که کلیک ناخواسته بر روی دکمه rest باعث از دست رفتن اطلاعات فعلی فیلدها می شود.

نوع submit


نوع submit برای ایجاد دکمه ارسال اطلاعات فرم کاربرد دارد، مثال:
<form action="user/comment/get.php" method="get">
<input type="submit" value="ارسال" />
</form>

نوع text


از نوع text برای ایجاد فیلدهای متنی (متن کوتاه) استفاده می شود، مثال:
<form action="user/comment/get.php" method="get">
<input type="text" name="text-feild" maxlength="255" />
</form>

تگ select در form


در صفحات html برای ایجاد یک منوی کشویی که دارای چند گزینه باشد، از تگی به نام select به همراه تگ زیرمجموعه آن یعنی option استفاده می شود، به طور مثال:
<form action="user/comment/get.php" method="get">
<select name="select-option">
<option value="0" selected="selected">انتخاب کنید</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
نکته: خاصیت selected گزینه پیش فرض یک منو را مشخص می کند.
در حالت عادی هر تگ select مجاز به ارسال تنها یک مقدار است، لذا برای ارسال مقادیر چندگانه، باید خاصیت multiple را به این تگ اضافه کنیم، مثال:
<form action="user/comment/get.php" method="get">
<select name="select-option[]" multiple="multiple">
<option value="0" selected="selected">انتخاب کنید</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
نکته 1: برای انتخاب چند گزینه از یک منوی select، کلید Ctrl را نگهداشته و گزینه های خود را انتخاب کنید.
نکته 2: اطلاعات فرم چندگانه به صورت یک آرایه به سرور ارسال می شود و علامت [] در انتهای نام منو بدین منظور نیاز است (درک مفهوم آرایه هدف این آموزش نیست، اما جهت آشنایی بیشتر و به زبان ساده آرایه در برنامه نویسی زبان های سمت سرور مانند php، asp و... به معنی یک متغیر است که درون خود چند متغیر دیگر دارد).

تگ textarea در form


در کنار دو تگ اصلی input و select عنصر دیگری در صفحات وب جهت ایجاد قابلیت های تعاملی نقش کلیدی دارد، این عنصر تگ textarea است که جهت ایجاد فیلدهای متنی (متن طولانی) به عنوان مثال برای وارد کردن یادداشت، ارسال مطلب، نمایش یک متن کپی رایت و... کاربرد دارد، به طور مثال:
<form action="user/comment/get.php" method="get">
<textarea name="your-text" cols="50" rows="8">
متن خود را اینجا بنویسید
</textarea>
</form>
تنظیم یک فیلد از نوع textarea به وسیله خاصیت های زیرمجموعه آن از جمله cols (ستون ها) و rows (سطرها) صورت می گیرد، از cols برای تعیین عرض و از rows برای ارتفاع استفاده می شود.
نکته 1: اندازه ها برای cols و rows صرفا جهت نمایش دلخواه فیلد کاربرد دارند و مانع ورود کاراکترهای بیشتر نمی شوند، برای محدود کردن تعداد کاراکتر مجاز از خاصیت maxlength استفاده کنید (البته محدودیت کاراکتر می تواند در سرور اعمال گردد یا در صفحات وب از تکنیک های دیگری مانند جاوا اسکریپت برای نمایش حداکثر کاراکتر مجاز به کاربر استفاده شود).
نکته 2: در حالت پیش فرض، هر فیلد متنی از نوع textarea ممکن است با اندکی تفاوت (از لحاظ ارتفاع و عرض) در مرورگرهای مختلف نمایش داده شود، برای تنظیم دقیق و یکسان اندازه باید از CSS استفاده کنیم (که خود مبحثی جدا است).

خاصیت readonly


تگ textarea برای نمایش متن های readonly (صرفا خواندنی) نیز کاربرد دارد، به طور مثال می توان با افزودن خاصیت readonly به آن، یک متن برجسته شده را جهت مطالعه کاربر به او نشان داد (کاربر قادر به تغییر متن نیست)، مثال:
<form action="user/comment/get.php" method="get">
<textarea name="your-text" cols="50" rows="8" readonly="readonly">
متن خود را اینجا بنویسید
</textarea>
</form>

خاصیت های disabled


برای غیر فعال کردن تگ های فرم (به طور کلی) از خاصیتی به نام disabled استفاده می شود، با این کار اگرچه فرم ها به ظاهر نمایش داده می شوند، اما عملا کاربر قادر به وارد کردن اطلاعات یا انتخاب موردی نیست، مثال:
<form action="user/comment/get.php" method="get">
<textarea name="your-text" cols="50" rows="8" disabled="disabled">
متن خود را اینجا بنویسید
</textarea>
</form>
نکته: خاصیت disabled محدود به تگ textarea نیست و عمومیت دارد.

استفاده از label در form


برای ایجاد برچسب های استاندارد در فرم های وب، از تگی (جفتی) به نام label استفاده می شود، label در واقع نقش معرف و برچسب را برای یک تگ فرم ایفا می کند، مثال:
<form action="user/comment/get.php" method="get">
<label for="my-text">یادداشت:</label>
<textarea name="your-text" cols="50" rows="8" id="my-text">
متن خود را اینجا بنویسید
</textarea>
</form>
همان طور که ملاحظه می کنید، label از یک id برای شناسایی فیلد مربوطه استفاده می کند، در واقع برای هر فیلدی که قصد تعریف برچسب داریم، یک id تعریف کرده و با خاصیت for برچسب را به آن نسبت می دهیم.
نکته: در کنار خاصیت های عنوان شده، برخی خواص کلی مانند class، dir، id، lang و... نیز برای تگ های فرم قابل اعمال است.
مثال و پیش نمایش آنلاین
در زیر یک مثال کاربردی از تگ form و پیش نمایش آنلاین آن را ملاحظه می کنید.
<!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" />
<title>وبگو | استفاده از فرم در صفحات وب</title>
<!-- https://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
    line-height:20px;    
}
label{
    width:100px;
    height:25px;
    display:inline-block;
    vertical-align:top;
}
</style>
</head>
<body>
<form action="form-get.php" method="post">
<label for="name">نام:</label>
<input type="text" name="name" id="name" maxlength="255" />
<br />
<label for="pass">رمز:</label>
<input type="password" name="pass" id="pass" maxlength="255" />
<br />
<label for="pass">کشور:</label>
<select name="country" id="country">
<option value="" selected="selected">انتخاب کنید</option>
<option value="Iran">ایران</option>
<option value="Japan">ژاپن</option>
<option value="Afghanistan">افغانستان</option>
<option value="Germany">آلمان</option>
<option value="Australia">استرالیا</option>
</select>
<br />
<label for="text">یادداشت:</label>
<textarea name="text" id="text" cols="30" rows="6">
</textarea>
<br />
<input type="submit" value="ارسال" />
</form>
<hr />
اطلاعات فرم بالا پس از ارسال (متد post)، به فایلی با نام فرضی form-get.php فرستاده شده و پردازش می شود.
</body>
</html>
پیش نمایش
دسته بندی: آموزش مقدماتی » HTML
related مطالب بیشتر:
آشنایی با مفهوم Semantic در HTML
لایه بندی در HTML با تگ div و span
آشنایی با HTML، زبان پایه کدنویسی وب
تگ های اصلی و کلیدی HTML
فرمت بندی و کار با متن و پاراگراف در HTML
دیدگاه
more ۱۲۸ دیدگاه برای این مطلب ارسال شده است.
more دیدگاه جدید بر اساس تاریخ ارسال در انتهای دیدگاه های موجود نمایش داده می شود.
محمد
۱۹:۴۷ ۱۳۹۴/۱۲/۱۳
سلام
خسته نباشید
من قصد دارم تا یک فرم به صورت اتوماتیک ارسال شود
اما فرم محتوی دو تا کلید به صورت زیر است که حاوی آی دی هست
<div style="position: relative">
<div id="btnBuy" style="float: right; background-color: #45b01b; color: #ffffff; cursor: pointer; border: solid 1px #2b6500; width: 190px; height: 28px; text-align: center; line-height: 25px; font-size: 13px">&#1582;&#1585;&#1740;&#1583;</div>
<div id="btnSell" style="float: left; background-color: #ee322b; color: #ffffff; cursor: pointer; border: solid 1px #800303; width: 190px; height: 28px; text-align: center; line-height: 25px; font-size: 13px">&#1601;&#1585;&#1608;&#1588;</div>
<div id="btnBuyMask" style="background-color: rgb(238, 238, 238); color: rgb(255, 255, 255); cursor: default; opacity: 0.5; border: 1px solid rgb(238, 238, 238); width: 190px; height: 28px; position: absolute; top: 0px; right: 0px; display: none;"></div>
<div id="btnSellMask" style="background-color: rgb(238, 238, 238); color: rgb(255, 255, 255); cursor: default; opacity: 0.5; border: 1px solid rgb(238, 238, 238); width: 190px; height: 28px; position: absolute; top: 0px; left: 0px; display: none;"></div>
</div>
حالا به نظر شما من از چه دستوری استفاده کنم در جاوا که بتونم بر روی یکی از کلیدها به صورت اتوماتیک درخواست را اجرا کنم مثلا دکمه خرید را ارسال کنم
ممنون میشوم راهنمایی بفرمایید
این کلیدها صرفا جنبه ظاهری دارند و در عمل کدهای جاوا اسکریپت (یا جی کئوری) هستند که با شناسایی یک رویداد بر روی این دکمه ها، فرم را ارسال می کنند، لذا باید با مفهوم رویداد (event) در جاوا اسکریپت (یا جی کئوری) آشنا باشید، توجه کنید که ارسال فرم در وب الزاما باید با وقوع یک رویداد باشد که به فرض می تواند پر کردن یک فیلد توسط کاربر یا بارگذاری کل صفحه باشد، با توجه به این توضیحات لطفا مشخص کنید که فرم شما دقیقا پس از چه مرحله ای باید ارسال شود تا امکان راهنمایی بیشتر وجود داشته باشد.
محمد
۱۷:۵۹ ۱۳۹۴/۱۲/۱۴
سلام فرم بالا به صورت زیر است کلا اما من قصد ارسال اتوماتیک فرم را دارم همانطور که گفتم اما متدها مشخص است ولی اگر بخواهم دکمه خرید یا فروش را به صورت خودکار با دستورات جاوا بفرستم در این صورت چکار می شود کرد ممنونم کد کامل فرم در زیر مشاهده می فرمایید
حذف شد
لطفا کد صفحه را به صورت آنلاین (آدرس URL صفحه) یا در جایی آپلود کرده و آدرس فایل آپلود شده را درج کنید!
محمد
۲۱:۰۵ ۱۳۹۴/۱۲/۱۴
سلام استاد به ادرس زیر فرم بالا اپلود شد که مربوط به یک فرم است
حذف شد
من بررسی کوچکی در مراحل مختلف ثبت فرم کردم و از مراحل مختلف نظیر دکمه خرید دکمه فروش فرم html را دانلود کردم اما جایی متوجه شدم که برای فرم به هنگام خرید یا فروش
<input id="hiddenOrderSide" value="86" type="hidden">
کد بالا با مقادیر 56 و 86 هر یکی برای خرید و یکی برای فروش فعال می شود
اما همانطور که گفتم هدف من این است که در خواست ارسال فرم را در صورت نیاز به صورت خودکار انجام دهم یکی برای خرید و دیگری برای فروش و از سمت کلاینت
ممنونم از شما استاد محترم و گرامی و از راهنمایی های بی نظیرتان
فرم ها به صورت اجمالی بررسی شدند، البته ارائه راه کار عملی صرفا با تست و بررسی آنلاین امکانپذیر است که کاری زمانبر است و شاید با طرح سوال در سایت ها و انجمن ها به جواب خاصی نرسید!، صرفا جهت راهنمایی، در کدها فرم HTML به صورت زیر وجود دارد:
<form action="/Customer/AddOrder?cr=7a896a94d1b14192b3b3c80218658041&amp;lan=Fa" method="post">
این فرم می تواند به صورت خودکار ارسال شود که آموزش کامل آن در لینک زیر وجود دارد:
http://www.formget.com/javascript-auto-submit-form
همچنین می توانید عبارت زیر را در اینترنت جستجو و نمونه راه حل هایی که وجود دارد را امتحان کنید (استفاه از این راه حل ها نیازمند آشنایی شما با جاوا اسکریپت است):
send a form after second + js
محمد
۱۸:۴۱ ۱۳۹۴/۱۲/۱۵
بله ممنونم از راهنماییتان
اما من می توانم این فرم را از لوکال به سمت ادرس مورد نظر بفرستم طوریکه مقادیر فرم با مقادیر مراحل اخری ست شده باشد منظورم کدهایی هست که از طریق دستورات جاوا تغییر داده میشه مثلا کدی که در بالا گفتم
اگر به لینک آموزش گفته شده دقت کنید، می توانید همین کار را با دستورات جاوا اسکریپت بر روی تگ form اعمال نمائید، منتها همان طور که قبلا گفتیم، باید مشخص کنید که چه هنگامی (با چه رویدادی) فرم باید ارسال شود، آیا بعد از سپری شدن مدت زمانی باید این کار صورت گیرد؟ آیا پس از پر شدن فیلدها این کار باید صورت گیرد؟ و... در این صورت می توانید با توجه به هدف مورد نظر، یک تابع جاوا اسکریپتی را اجراء و به کمک آن فرم را ارسال کنید، اینکه این توضیحات به مرحله اجرا برسند نیازمند بررسی دقیق سورس ها و هماهنگ سازی با کدهای موجود است که یک فرآیند زمانبر خواهد بود و باید برای آن وقت کافی صرف کنید (صرفا با بررسی اجمالی نمی توان راه حل نهایی را ارائه کرد، با توجه به کمبود زمان، گفته های ما در حد تئوری و مشاهده اولیه سورس ها است).
محمد
۲۱:۱۰ ۱۳۹۴/۱۲/۱۵
استاد باز هم ممنونم از راهنماییتان
یک مشکل دیگر دارم اگر راهنمایی بکنید خیلی ممنون می شوم
بعضی از وب سایت ها هستند که اصلا با متد های curl و ... امکان دریافت محتویات html سایتها نیست مثلا ادرس زیر را ببینید
http://cdn2.tsetmc.com/Loader.aspx?ParTree=151311&i=44818950263583523#
من برای دریافت مقادیر html این فرم چه راهکاری را می توانم در پیش بگیرم
خودتان می دانید مثلا من بخشی از فرم را با نمایشگر موزیلا بگیرم سورس html نمایان می شود اما در کل هنگام گرفتن کل صفحه با صفحه ای مواجه می شوم که اصلا از کد html خبری نیست
ممنون میشوم راهنمایی بفرمایید البته می دانم جای این موضوع اینجا نیست تشکر
ظاهرا این سایت در کدنویسی مواردی را برای پیچیده کردن سورس ها اعمال کرده، البته برای دریافت اولیه سورس ها به صورت خوانا کافی است پارامتر زیر را که مربوط به فشرده سازی gzip است، به دستورات curl اضافه نمائید:
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
اما اینکه کدهای جاوا اسکریپت به درستی اجرا شوند نیازمند پیدا کردن شگردی است که در کدهای سایت مورد نظر جهت جلوگیری از اجرای دستورات خارج از دامنه اصلی اعمال شده که این کار هم بسیار زمانبر خواهد بود!
حسین
۰۰:۵۱ ۱۳۹۵/۰۱/۰۳
با سلام خدمت استاد گرامی
من به چه شکل میتونم از طریق متد پست همراه با فرم یک متغیر هم بفرستم به این صورت بگم یک فرم ساختم و وقتی میخوام فرم ارسال بشه میخوام ای دی اون مطلب هم ارسال بشه که بفهمم اون فرم از کدوم ضفحه اومده، یکی از روش های که به ذهنم رسید یک تگ امپوت گذاشتم و یک مقدار از پیش تعریف شده بهش دادم با خاصیت placeholder ولی این مقدار به صفحه مقصد ارسال نمیشه و فیلد خالی حسابش میکنه
placeholder صرفا حالت نمایشی دارد و به سرور ارسال نمی شود، باید برای این کار یک فیلد input ترجیحا از نوع hidden داشته باشید که در قسمت value مقدار مورد نظر (که با توجه به توضیحات می تواند id مطلب باشد) را جایگزین کنید (قاعدتا با کدهای PHP می توان به صورت داینامیک این جایگزینی را انجام داد)، این فیلد در هنگام ارسال فرم به سرور ارسال و در کدهای PHP قابل دریافت است.
خوشکار
۱۹:۰۸ ۱۳۹۵/۰۱/۰۸
با سلام و تشکر از سایت خوب وب گو
من یه سوال برام پیش اومده با توجه به مطالبی که خیلی خوب و صریح در وبسایت توضیح داده اید میخواستم ببینم چطور میشه لیستی از چک باکسها رو بصورت کشویی ساخت با امکان انتخاب و ارسال چند گزینه نمونه اش هم در سایت خوب نیاز روز قرار دارد - در بخش ثبت رایگان آگهی - ملک - آپارتمان - گزینه مربوط به امکانات آشپزخانه. البته امکان ایجاد یک متن اضافه هم در پایان گزینه ها دارد . بخش ثبت آگهی رایگان
ممنونم از توجه شما*
متاسفانه توضیح کوتاهی برای این شیوه وجود ندارد، صرفا در حد راهنمایی، اینها فیلدهای عادی وب از نوع input صرف نیستند بلکه به طور مثال تگ div را با استفاده از CSS به شکل فیلد input نمایش می دهند و با کمک دستورات جاوا اسکریپت عملکرد کاربر را مدیریت می کنند، در واقع برای نوشتن چنین امکانی باید مجموعه زبان های مرتبط در حوزه وب (PHP, HTML, JavaScript, CSS) مورد استفاده قرار گیرند، به عبارتی این یک کار حرفه ای برنامه نویسی است!
alireza
۲۳:۳۱ ۱۳۹۵/۰۲/۰۹
با سلام و تشکر از سایت خوبتون
یک دراپ دان لیست میخوام با گزینه های بلی و خیر
که زمانیکه بلی انتخاب شد یه تکست باکس باز بشه و کاربر بتونه داخلش تایپ کنه تمام کامنتا دوستان رو خوندم این درخواست نبود راهنمایی کنید ممنونتون میشم
می توانید از نمونه کد زیر استفاده کنید، البته قاعدتا طراحی یک فرم حرفه ای نیازمند ایجاد تغییرات با JavaScript و CSS در نمونه ساده زیر است:
<select onchange="yesnoCheck(this, 'div-id');">
<option value="0">No</option>
<option value="1">Yes</option>
</select>
<div id="div-id" style="display: none;">
<label for="input-id">Test:</label>
<input type="text" id="input-id" name="test">
</div>
<script type="text/javascript">
function yesnoCheck(obj, id) {
if (obj.value == "1") {
document.getElementById(id).style.display = "block";
} else {
document.getElementById(id).style.display = "none";
}
}
</script>
ازادی
۰۹:۱۴ ۱۳۹۵/۰۴/۰۳
سلام.
امکان تغییر آدرس درaction هست؟ بحث ریرایت url ها
تا آنجا که اطلاع داریم، در صورت استفاده از متد GET و ارسال فرم به شیوه معمول، راهی برای مخفی کردن پارامترهای ارسالی در نوار آدرس مرورگر وجود ندارد، مگر اینکه از AJAX استفاده کنید!
مهدی
۱۸:۴۱ ۱۳۹۵/۰۴/۲۱
سلام
آقا ممنون
۱۴:۲۵ ۱۳۹۵/۰۴/۲۵
با سلام خدمت شما
ممنون از راهنمایی هاتون
نیلوفر
۱۵:۴۱ ۱۳۹۵/۰۵/۲۴
سلام من این کد رو واسه آپلودفایل نوشتم
<input type="file" name="file"  />
وقتی نمایش میده. فقط اسم فایل رو نشون میده. چیکارکنم که کاربر فقط اسمشو نبینه و بتونه دانلودش کنه.
اسم فایل درفیلد ذخیره میشه اما خود فایل کجای دیتابیس ذخیره میشه؟؟؟؟
کد درج شده صرفا مرحله اول (سمت کاربر) و برای آپلود یک فایل به سرور است، برای دانلود باید در سرور کدهایی به طور مثال به زبان PHP داشته باشید که فایل ارسال شده را مدیریت کرده و در هارددیسک سرور ذخیره نماید، سپس می توان با توجه به اطلاعات دایرکتوری و نام فایل، برای دانلود یک لینک ایجاد و به کاربر نمایش داد، در واقع تمام این مراحل باید کدنویسی شوند!
۰۰:۴۰ ۱۳۹۵/۰۵/۲۷
ممنون از مطلب خوبتون
۰۱:۰۱ ۱۳۹۵/۰۸/۱۵
سلام نمیشه دو تا فرم رو درون هم قرار بدیم به طوری که دو تا دکمه ارسال باشه و هر کدوم اطلاعات رو به فایل مخصوص خودشون بفرستن ؟
من کردم ولی دوتا دکمه اطلاعات رو به یک فایل ارسال میکنن ( صفحه های مشخص شده در action متفاوت است اما هر دو فرم اطلاعات رو به یک صفحه ارسال میکنند) .
انجام چنین کاری از لحاظ استاندارد HTML معتبر و ممکن نیست!، البته مشخص نیست هدفتان از این کار چیست و چه ضرورتی باعث شده به این راه حل فکر کنید، در صورتی که هدفتان از این کار مشخص باشد می توان با راه حل های استاندارد، مشکل را رفع کرد.
عرفان رستگار
۰۱:۲۶ ۱۳۹۵/۱۰/۱۵
سلام خسته نباشید
آقا لطفا لطفا لطفا اینو سریع پاسخ بدید خواهش میکنم
بعداز پاسخگویی هم من ممنون میشم یک طوری به من اطلاع بدید ( ایمیل ثبت کردم)
جناب ببخشید الان شما فرم و ساختید و به صفحه بعدی منتقل کردید
توی اون صفحه چه طوری اطلاعات کاربر و نشون داد
شما اکشن کردید و آدرس اون صفحه رو دادید
توی اون صفح چی نوشتید که به کاربر اطلاعاتش رو نشون داد میشه اون کد رو برام بزارید کپی پیست کنم (کد صفحه دوم رو)
ممنون از سایت خوب و پشتیبانی شما
انشالله خیر ببینید
ممنونم
کد صفحه دوم باید با دستورات PHP و مطابق نیازتان نوشته شود، این آموزش صرفا مربوط به بخش HTML کار است، آموزش های بخش PHP به صورت جداگانه و معمولا در چارچوب نحوه استفاده از متد GET و POST در جای خود گفته شده، لطفا در وب در این خصوص جستجو نمائید.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
3 × 4
20 × 20
=
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
سیدعباسی
با تشکر از شما خیلی ممنون مشکلم درست شد فقط یه مشکل دارم چطوری می تونم با php متنی که می نویسم یه قسمت...
۱۴۰۳/۰۴/۲۶

پرتو
سلام ببخشید مزاحم میشم جواب سوال من کو؟
۱۴۰۳/۰۴/۲۵

سیدعباسی
ببخشید برای سوال و کد قبلی که براتون نوشتم میخوام با کد قبلی یک لینک رو بررسی کنم بعد عکسهای اون مطلب رو پیدا کنم...
۱۴۰۳/۰۴/۲۵

سیدعباسی
با تشکر از شما متوجه شدم با این کد چطوری میتونم عکس یک مطلب رو دربیارم و لینکش رو جدا کنم؟ روی کد...
۱۴۰۳/۰۴/۲۵

سیدعباسی
سلام من دو روز پیش یه کد براتون فرستادم واسه ارسال متن به تلگرام اونو درست کردم فقط این کد ازش می خوام...
۱۴۰۳/۰۴/۲۴

سیدعباسی
با سلام من مطالب سایتم رو با این تابع به تلگرام ارسال می کنم فقط مشکلی که باهاش دارم اینکه هیچ تگی رو قبول...
۱۴۰۳/۰۴/۲۲

سارا اکبری
لطفا کد کپچا رو درست کنید هر چی کپچا رو میزنیم میگه اشتباهه حتما باید کپچا رو دستی خودمون رو دکمش بزنیم رفرش بشه بعد...
۱۴۰۳/۰۴/۲۱

سارا اکبری
سلام استاد عزیز وقت بخیر بنده ی تعداد افراد انلاین ساده نوشتم ببینید برای پروژه های بزرگ اوکیه و مشکلی پیش نمیاد ؟...
۱۴۰۳/۰۴/۲۱

پرتو
سلام خوبید؟ خسته نباشید ببخشید مزاحم میشم ممنون از جوابتون راستش بعضی وقتا از بس سوالاتم زیاده روم نمیشه ازتون بپرسم مثل امشب که چیکار...
۱۴۰۳/۰۳/۱۳

پرتو
سلام خوبین؟ خسته نباشید یه سوال من منوی سمت راست قالبم نوشته هاش چسبیده به بردر باید چیکار کنم که درست شه؟ یعنی منظورم اینکه...
۱۴۰۳/۰۳/۰۹

پرتو
سلام خوبید؟ بلاکفا باز دچار مشکل شده یا فقط برای من دچار مشکل شده؟ منظورم اینکه خیلی دیر باز میشه و فقط برای فایرفاکس هم...
۱۴۰۳/۰۳/۰۱
  در انتظار بررسی: ۲
 پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.