PDA

View Full Version : مشکل در استفاده از دستور form



htarahi
چهارشنبه 27 آذر 1392, 21:09 عصر
سلام دوستان
من توی پوشه ی view یه صفحه دارم به نام tavern.php و توی اون یه فرم که خلاصه ی کدش اینه :

<form action="<?=$this->config->item('base_url')?>actions/tavern/<?=$position?>/" method="POST">
<input type="submit" value="ok" class="button">
<select name="amount" size="1">
<option value="0" </option>
<option value="1" </option>
<option value="2" </option>
</select>
</form>

حالا توی کنترلر یه فایل دارم به نام actions و توش یه تابع به نام tavern دارم که خلاصش اینه :

function tavern
{
if(isset($_POST['amount']))
{
.............[code].............
}
$this->show('tavern');
}

مشکل اینجاست که متغیر amount به تابع من نمی رسه !
به عبارتی خطوط فوق از شرط if(isset($_POST['amount'])) عبور نمی کنه !
توی ساختار فایل ها و موارد کلی مشکلی نیست چون بقیه ی توابع کار می کنند.اینجا مشکل از تابع form هست .فکر کنم یه نکته ی کوچواو وجود داشته باشه که از نظرم دور مونده !
کسی می تونه کمکم کنه ؟:ناراحت:

farzad1120
پنج شنبه 28 آذر 1392, 00:19 صبح
دستور زیر رو بنویس و ببین چی به صورت post به تابع میرسه

var_export($_POST);

htarahi
پنج شنبه 28 آذر 1392, 17:03 عصر
array ( )
به عبارتی هیچی !
درضمن در تابع توی کنترلر به $_POST['amount'] مقدار دادم مثلاً 2 و درست کار کرد !
بنابراین اشکال از رسال تابع form هست ...

pary_daryayi
جمعه 29 آذر 1392, 09:00 صبح
یکی اینکه شما کدهای مربوط به سلکت رو کامل ننوشتید که احتمالا اتفاقی اینجا اینطور شده :


<option value="0" </option>
<option value="1" </option>
<option value="2" </option>

که کاملش کنید :


<option value="0">test0 </option>
<option value="1"> test1</option>
<option value="2"> test2</option>

دوم اینکه برای چک کردن اینکه گزینه ای در سلکت انتخاب شده یا نه از empty استفاده کنید :


<form action="" method="POST">
<input type="submit" value="ok" class="button" name="s">
<select name="amount" size="1">
<option value="0">test0 </option>
<option value="1"> test1</option>
<option value="2"> test2</option>
</select>
</form>
<?php
if(isset($_POST['s'])){

if(empty($_POST['amount']))
{
echo 'no set';
}
else
echo 'ok';
}
?>


از این <?php به جای این استفاده کنید <?=

و اگه با همه ی اینها باز هم جواب نداد , فکر میکنم باید گزینه ای با عنوان short_tag رو فعال کنید .

htarahi
جمعه 29 آذر 1392, 17:15 عصر
با تشکر از دوست خوبم
اول بگم short_tag فعاله ،اگر فعال نبود با این همه دستور مخفف که هیچی کار نمی کرد !
در رابطه با قست اول پاسخ شون هم باید بگم نمی خواستم وارد جزئیات بشم و کلیاتش رو نوشتم چون کد اصلی خیلی خیلی بیشتر از ایناست اما از دقت دوست خوبم تشکر می کنم .
اما در رابطه با قسمت دوم باید بگم با نامگذاری submit و استفاده از کد پیشنهادی هیچ اتفاقی نیفتاد و هیچی نشون نداد ! این یعنی اصلاً submit نمیشه ! درست میگم ؟
وقتی شرط
if(isset($_POST['s'])){ رو برداشتم جواب داد no set .
پس به نظر می رسه submit-ای در کار نیست که $_POST['amount'] خالی می مونه !
فکر کنم داریم به نتیجه می رسیم !:گیج::متفکر:

htarahi
جمعه 29 آذر 1392, 17:49 عصر
ممنون ممنون ممنون
حل شد !
اشکال دراین خط بود !

<form action="<?=$this->config->item('base_url')?>actions/tavern/<?=$position?>/" method="POST">
توی آدرس دهی action اون / آخرش اضافی بود !
همون طور که از ابتدا حدس می زدم یه مشکل کوچولو وجود داشت .
از دوستانی که کمک کردن خیلی خیلی سپاسگزارم ...