رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Update (حل شد)
#1
سلام و عرض ادب خدمت تمامی دوستان
من تویه php تابعی رو نوشتم واسه update کردن پایگاه داده.
تابع و کوئری من درست کار میکنه ولی مشکلم اینه که بعد این که مقادیر ارسال و update شد برای نشون مطالب بروز شده باید یکبارم صفحه رو رفرش کنم اگه این کارو نکنم اطلاعات قبلی نشون داده میشن.
به نظرتون مشکل چی میتونه باشه؟

تشــکر.
از دی که گذشت هیچ از او یاد مکن
فردا که نیامدست فریاد مکن
بر آمده و نامده  بنیاد مکن
نفسی خوش باش و عمر بر باد مکن
پاسخ
تشکر شده توسط:
#2
برای بروزرسانی صفحه بدون اینکه صفحه Refresh بشه باید از AJAX استفاده کنید.
پاسخ
تشکر شده توسط: vahid0412
#3
بله. ولی من از AJAX استفاده نکردم. یک فرم معمولی هستش که اطلاعات رو ارسال میکنه و صفحه هم رفرش میشه. ولی با وجود رفرش شدن صفحه اطلاعات Update شده نشون داده نمیشن(اطلاعات قبلی نشون داده میشن). برای نشون دادنشون باید صفحه برای بار دوم رفرش بشه. ضمناً اینکه تویه پایگاه داده ام بررسی میکنم و میبینم که همون بار اول اطلاعات تغییر میکنه ولی برای نمایش صفحه باید دوبار رفرش بشه.
Huh Huh Huh Huh
از دی که گذشت هیچ از او یاد مکن
فردا که نیامدست فریاد مکن
بر آمده و نامده  بنیاد مکن
نفسی خوش باش و عمر بر باد مکن
پاسخ
تشکر شده توسط:
#4
شاید توی سیستم کلاینت صفحه کش شده. کاربر رو با چی به صفحه قبلی برمیگردونید؟ منظورم اینه که از چه کدی استفاده میکنید؟
پاسخ
تشکر شده توسط: vahid0412
#5
اطلاعاتم رو با فرم زیرگرفته و ارسال میکنم:
<?php
if(isset($_POST['submit'])){
	$desc = $_POST['desc'];
		if($desc!==""){
			$main->Tuition_Update($User_Name, $desc);
		}else{
			echo "<script type='text/javascript'>alert('توضیحات نمی تواند خالی باشد');</script>";
		}
	}
}
?>
<form method="post">
	<div class="form-group">
		<label>توضیحات وضعیت مالی: </label><br />
		<pre id="text_show"> <textarea style="width:600px; height:250px;" name="desc"><?php echo $tuition_desc; ?></textarea></pre><br />
	<div class="btn-group">
		<input type="submit" class="btn btn-primary" name="submit" value="ارسال" />
	</div>
</form>


تابعی که واسه ی update نوشتم اینه:
 public function Tuition_Update($username, $desc){
$sql = "UPDATE `tbl_tuition` SET `description`='$desc' WHERE `user_code`='$username'";
$stmt = $this->connect->prepare($sql);
if($stmt->execute()){
echo "<script type='text/javascript'>alert('ویرایش انجام شد.');</script>";
}else
echo "<script type='text/javascript'>alert('ویرایش نشد. دوباره امتحان کنید. ');</script>";
}


و با تابعی زیر اطلاعاتم رو واکشی میکنم:
public function Tuition_Select($username){
$sql = "SELECT `description` FROM `tbl_tuition` WHERE `user_code`='$username'";
$stmt = $this->connect->prepare($sql);
$stmt->execute();
return $stmt;
}



و بعد این از کلاس Object ساختم و اطلاعات return شده رو ریختم تویه متغییر های مد نظر.


           $tuition = $main->Tuition_Select($User_Name);
           $tui_desc = $tuition->fetch(PDO::FETCH_ASSOC);
           $tuition_desc = $tui_desc['description'];


و بعد پایین این کدها اطلاعتم رو داخل یک تگ textarea واکشی کردم:

<pre id="text_show"> <textarea style="width:600px; height:250px;" name="desc"><?php echo $tuition_desc; ?></textarea></pre><br />


در مورد کش شدن هم با چندتا کلاینت امتحان کردم ولی بازم همون نتیجه رود داده Confused Confused Confused   Huh Huh
از دی که گذشت هیچ از او یاد مکن
فردا که نیامدست فریاد مکن
بر آمده و نامده  بنیاد مکن
نفسی خوش باش و عمر بر باد مکن
پاسخ
تشکر شده توسط:
#6
کدهاتون درسته ولی ترتیب اجرا رو نمیدونم چطوره. مثلاً ممکنه اول دارین میخونین و بعد دارین Update میکنید. این موارد رو چک کنید.
پاسخ
تشکر شده توسط: vahid0412
#7
عاااااااااااااااااااااااااااالی بود.
درسته مهندس ترتیب اجرا رو تغییر دادم (اول update کردم و بعدش خوندم) حل شد.
اصلا فکر نمیکردم این باشه مشکل.
تشــــــــــــــــــــــــــــــــــــــــــــــــــــکر Heart Heart Heart Heart Heart Heart Heart
از دی که گذشت هیچ از او یاد مکن
فردا که نیامدست فریاد مکن
بر آمده و نامده  بنیاد مکن
نفسی خوش باش و عمر بر باد مکن
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 5 مهمان