2015-10-21 42 views
1

我的代碼出現問題。我使用textarea來更新我的分貝。當我保存更改時,頁面將刷新並顯示預編輯的文本。SQL更新並顯示文本後PHP文本區刷新

2小時搜索後的線程,是時候問一個愚蠢的問題....

header('Location: ./kommers_edit.php'); 

它的工作嘗試過,但不是在我需要的方式。

我需要通過我的id變量(我現在使用一個表單)來獲取內容並顯示一條消息,說明文本已被編輯。

我想過一個額外的頁面,顯示編輯後的文本和消息......有沒有更「優雅」,也許不是複雜的方式來做到這一點?

if (isset ($_GET['aktion'])) 
{ 
    if ($_GET['aktion'] == "speichern") 
{ 
    $liedtitel  = $_GET['liedtitel']; 
    $liedtext  = $_GET['liedtext']; 
    $id    = $_GET['id']; 

    $liedtitel_html= nl2br ($liedtitel,true); 
    $liedtext_html= nl2br ($liedtext,true); 

    $sql = "UPDATE kommersbuch SET liedtitel='$liedtitel_html',liedtext='$liedtext_html' WHERE id='$id'"; 

    require_once ('config.php'); 
    $db_data = mysql_query($sql) 
    or die("Anfrage fehlgeschlagen: " . mysql_error()); 

    echo '<h2>Lied wurde geändert</h2>'; 
    echo '<a href="kommers.php">zurück zum Kommersbuch</a>'; 
    //header('Location: ./kommers_edit.php');  
    exit; 

謝謝你的時間。

回答

0

你有一個表單,哪些職位相同的頁面form表單數據。如果頁面捕獲表單發佈,它將更新數據庫中的表單。

由於這是一個更新,我可以假設這個條目已經存在嗎?

所以我想你有一個選擇來填充提交之前的表單數據?只要確保在更新之後再次運行它。該ID不會更改。

大致爲:

<?php 
if($_POST['action'] = "submission"){ 
    $sql = "UPDATE...." 
    $r = mysqli_query($con, $sql); 
    // do your request & validtion, make sure it works. 
} 
$sql = "SELECT * ...." 
$r = mysqli_query($con, $sql); 
// Do your request & validation, make sure it worked 

?> 
<form action ="" method="POST"> 
    <input value="<?php echo $result['colname'];?> name="colname"> 
    <textarea name="textname"><?php echo $result['textname']; ?></textarea> 
    <input type="hidden" name="action" value="submit"> 
    <input type="submit" name="submit"> 
</form> 

通過這種方式,將填充形式擺在首位的選擇將是什麼只是去到數據庫中重新填充它。

現在,如果您想在驗證錯誤的情況下填充已發送內容(但不在數據庫中)的字段,只需將發送的值分配給$ request ['sentvaluename']並停止從發生的SELECT查詢。

+0

感謝您的幫助。 – AzReal

0

嘗試使用

header('Location: ./kommers_edit.php?id=$id'); 

後, 在kommers_edit.php,使一個腳本,獲得ID