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