2017-05-29 20 views
1

嗨,我有一個問題,更新輸入數據,一旦我按刷新加載頁面,但以前的值保持和數據庫如果更新不更新輸入值。刷新頁面都不會顯示新數據,我必須註銷並重新輸入。時按下按鈕,但在數據庫是

使用本

function account_profile(array $data) { 
     if (!empty($data)) { 
      $trimmed_data = array_map('trim', $data); 

      $user_id = mysqli_real_escape_string($this->_con, $trimmed_data[ 'user_id' ]); 
      $first_name = mysqli_real_escape_string($this->_con, $trimmed_data[ 'first_name' ]); 
      $last_name = mysqli_real_escape_string($this->_con, $trimmed_data[ 'last_name' ]); 
      $address = mysqli_real_escape_string($this->_con, $trimmed_data[ 'address' ]); 
      $city = mysqli_real_escape_string($this->_con, $trimmed_data[ 'city' ]); 
      $telephone = mysqli_real_escape_string($this->_con, $trimmed_data[ 'telephone' ]); 

      $query = "UPDATE users SET first_name = '$first_name', last_name = '$last_name', address = '$address', city = '$city', telephone = '$telephone' WHERE user_id = '$user_id'"; 
      if (mysqli_query($this->_con, $query)) { 
       mysqli_close($this->_con); 
       return true; 
      } 
     } else { 
      throw new Exception(FIELDS_MISSING); 
     } 
    } 

,這得到的值

<input type="text" class="form-control" name="first_name" id="first_name" placeholder="Sólo letras" value="<?php 
if ($_POST) { 
    echo $_POST[ 'first_name' ]; 
} else { 
    echo $_SESSION[ 'first_name' ]; 
} 
?>" required> 
... 

感謝您的任何意見

+0

按下按鈕你刷新頁面或顯示已被請求時,在行上執行新的SELECT查詢?另外我建議不要使用mysqli_real_escape_string,使用預準備語句。 –

回答

0

嘗試

if (isset($_POST)) { 

而不是

if ($_POST) { 
+0

不會出現數據添加isset,謝謝 – forerser

1

我也不太清楚,如果我正確地理解你的問題。 但對你的代碼

​​

這是更好地使用if (isset($_POST['first_name'])),以確保作出POST請求時,FIRST_NAME不是空的。

您的代碼的主要問題是,您可能忘記在每次單擊該按鈕時在會話中設置first_name值,這就是爲什麼如果刷新頁面時沒有看到最新值,因爲$ _SESSION ['first_name ']根本沒有更新!

所以從我的理解,請嘗試以下代碼

if (isset($_POST['first_name'])){ //First Name changed, so we update it 
    $_SESSION['first_name'] = $_POST['first_name']; 
} 
echo $_SESSION['first_name']; //Print data (first_name in this instance) 

你可能不需要別的了這一點,因爲原來的值總是會在會議上,如果你之前反正

+0

謝謝,但不會出現數據 – forerser

+0

請檢查我的編輯,我已經添加echo語句來打印數據現在 – ryo7689

+0

nope,既不顯示 – forerser