تالار گفتمان nCIS.ir

نسخه‌ی کامل: Update (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام و عرض ادب خدمت تمامی دوستان
من تویه php تابعی رو نوشتم واسه update کردن پایگاه داده.
تابع و کوئری من درست کار میکنه ولی مشکلم اینه که بعد این که مقادیر ارسال و update شد برای نشون مطالب بروز شده باید یکبارم صفحه رو رفرش کنم اگه این کارو نکنم اطلاعات قبلی نشون داده میشن.
به نظرتون مشکل چی میتونه باشه؟

تشــکر.
برای بروزرسانی صفحه بدون اینکه صفحه Refresh بشه باید از AJAX استفاده کنید.
بله. ولی من از AJAX استفاده نکردم. یک فرم معمولی هستش که اطلاعات رو ارسال میکنه و صفحه هم رفرش میشه. ولی با وجود رفرش شدن صفحه اطلاعات Update شده نشون داده نمیشن(اطلاعات قبلی نشون داده میشن). برای نشون دادنشون باید صفحه برای بار دوم رفرش بشه. ضمناً اینکه تویه پایگاه داده ام بررسی میکنم و میبینم که همون بار اول اطلاعات تغییر میکنه ولی برای نمایش صفحه باید دوبار رفرش بشه.
Huh Huh Huh Huh
شاید توی سیستم کلاینت صفحه کش شده. کاربر رو با چی به صفحه قبلی برمیگردونید؟ منظورم اینه که از چه کدی استفاده میکنید؟
اطلاعاتم رو با فرم زیرگرفته و ارسال میکنم:
<?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
کدهاتون درسته ولی ترتیب اجرا رو نمیدونم چطوره. مثلاً ممکنه اول دارین میخونین و بعد دارین Update میکنید. این موارد رو چک کنید.
عاااااااااااااااااااااااااااالی بود.
درسته مهندس ترتیب اجرا رو تغییر دادم (اول update کردم و بعدش خوندم) حل شد.
اصلا فکر نمیکردم این باشه مشکل.
تشــــــــــــــــــــــــــــــــــــــــــــــــــــکر Heart Heart Heart Heart Heart Heart Heart