PDA

View Full Version : سوال: action یک صفحه در همان صفحه با اطلاعات جدید



ArMin.AM
شنبه 27 خرداد 1391, 12:23 عصر
سلام دوستان ، یه سوال دارم
من یه فرمی دارم که یه کد رهگیری از کاربر میگیره و با اطلاعات موجود تو دیتا بیس چک می کنه و نتیجه رو میده ، حالا من میخوام همه ی این کارها تو یه صفحه انجام بشه ، فرضا تو صفحه ی rahgiri.php من یه تکست فیلد میزارم که کد رهگیری رو میگیره و یه دکمه ی submit ، حالا میخوام وقتی کاربر سابمیت می کنه ، توی همون صفحه ، بیاد اطلاعات مربوط به اون کد رهگیری رو نشون بده ، من تو action فرمم ، $PHP_SELF گذاشتم که به همون صفحه رجوع کنه اما هر بار که روی دکمه ی submit کلیک می کنم ، باز همون تکست فیلد و دکمه رو نشون میده فقط
مشکل از کجاست ؟

lady64
شنبه 27 خرداد 1391, 12:28 عصر
اینطوری انجام بدید :



<a href="?show=1">show</a>
<?php if($_GET['show']==1)
{ ?>
<form id="form1" name="form1" method="post" action="?a=1">
<label>
<input type="text" name="t" />
</label>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</form>
<?php
}
if($_GET['a']==1 and $_POST['Submit'])
echo $_POST['t'];
?>



البته اون لینک رو برای تست گذاشتم ، شما میتونید از هر صفحه ای که وارد این صفحه میشید ، با یک مقدار جدید وارد بشید و با $_get اینجا دریافت کنید.

ArMin.AM
شنبه 27 خرداد 1391, 12:46 عصر
خیلی ممنون دوست عزیز ، اون مشکل رو حل کردم ، الان یه مشکل دیگه پیش اومده ، الان علاوه بر اطلاعات مربوط به کد رهگیری ، اون textfield و دکمه ی submit رو هم نشون میده ، راهی هست که وقتی کاربر submit می کنه ، فقط اطلاعات جدید رو نشون بده و اون text field و submit حذف شه ؟

lady64
شنبه 27 خرداد 1391, 13:49 عصر
خب من هم جواب همین سوالتونو دادم ، آیتم های form, textfield, submit همه رو درون یک شرط if گذاشتم . یک if دیگه هم برای دستورات دیگه . مثلا میخواید بیایید صفحه ی edit.php که دکمه و تسکست فیلد شما اونجاست و قبلش احتمالا روی یک منو یا لینک کلیک کردید. اینطور هدایت کنید :



<a href="edit.php?show=1">show</a>

حالا وقتی وارد صفحه میشه ، ابتدا مقدار show چک میشه و چون true هست دکمه و تکست فیلد نشون داده میشه .



<?php if($_GET['show']==1)
{ ?>
<form id="form1" name="form1" method="post" action="?a=1">
<label>
<input type="text" name="t" />
</label>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</form>
<?php
}



و وقتی شما submit رو میزنید یک شرط دیگه میزارید.



if($_GET['a']==1 and $_POST['Submit'])
echo $_POST['t'];

در نتیجه شرط اول دیگه اجرا نمیشه و تکست فیلد و دکمه ی شما دیده نمیشه .
دوباره به کدی که گذاشتم دقت کنید .