2010-04-24 92 views
0

我拼湊從各種教程,範例等下面的腳本...PHP表 - 編輯 - 通過文本文件刪除數據塊

眼下劇本目前保存ID,姓名,地址用「|」分隔符到一個文本文件DB這樣的:

1|John|http://www.john.com| 
2|Mark|http://www.mark.com| 
3|Fred|http://www.fred.com| 

但我有一個很難試圖使「更新」和「刪除」按鈕正常工作。

有人可以請張貼代碼將:

  • 讓我更新/保存任何該行更改數據(更新按鈕)
  • 讓我刪除該行(用於DELETE鍵)

請複製n粘貼下面的代碼,併爲自己嘗試。 我想保留以下腳本的輸出格式。


<?php 

$file = "data.txt"; 
$name = $_POST['name']; 
$url = $_POST['url']; 

$data = file('data.txt'); 
    $i = 1; 
    foreach ($data as $line) { 
    $line = explode('|', $line); 
    $i++; 
} 

if (isset($_POST['submits'])) { 
$fp = fopen($file, "a+"); 
    fwrite($fp, $i."|".$name."|".$url."|\n"); 
    fclose($fp); 
} 


?> 
<html> 
<head> 
</head> 
<body> 
<br> 
<form name="form1" action="thispage.php" method="POST"> 
<input type="text" name="name"> 
<input type="text" name="url"> 
<input type="submit" name="submits" value="ADD"><br> 
</form> 
<form name="form2" action="thispage.php" method="POST"> 
<?php 

    $display = file("data.txt"); 
     for ($i=0; $i<=count($display)-1; $i++) { 
     $lines = explode("|",$display[$i]); 

     print('<input type="hidden" name="id" value="'.$lines[0].'"> 
       <input type="text" name="name" value="'.$lines[1].'"> 
       <input type="text" name="url" value="'.$lines[2].'"> 
       <input type="submit" name="update" value="UPDATE"> 
       <input type="submit" name="delete" value="DELETE"><br>'); 
     } 

?> 
</form> 
</body> 
</html> 

回答

1

我不只是要發佈的代碼爲您服務。 (如果我遲到了,我保證輸入錯誤)

首先,您需要在輸出中標記表單字段以標識每行。你可以通過使用數組來完成。例如,您可以使用name =「url []」來代替name =「url」,並且您的$ _POST變量將包含一個數組 - 關鍵字將確定您正在處理的是哪一行。

你還需要一些東西來刪除。這可以是簡單的鏈接或複選框。複選框可能會更好,因爲它可以讓您一次刪除多行。擺脫你有「刪除」提交按鈕。

一旦你有了這些,你可以遍歷$ _POST變量(和數據庫文件)中的每一行,並根據需要進行編輯或刪除。