Форма PHP - Редактировать и удалять с помощью текстового файла Db - PullRequest
0 голосов
/ 24 апреля 2010

Я собрал приведенный ниже скрипт из различных учебных пособий, примеров и т. Д. *

В данный момент скрипт сохраняет Id, Name, Url с "|" разделитель к текстовому файлу Db вроде:

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

Но я с трудом пытаюсь заставить работать кнопки "ОБНОВЛЕНИЕ" и "УДАЛИТЬ".

Может кто-нибудь, пожалуйста, напишите код, который будет:

  • позвольте мне обновить / сохранить любые измененные данные для этой строки (для кнопки ОБНОВЛЕНИЕ)
  • позвольте мне удалить эту строку (для кнопки УДАЛИТЬ)

ПОЖАЛУЙСТА, скопируйте, вставьте приведенный ниже код и попробуйте сами. Я также хотел бы сохранить формат вывода сценария ниже.


<?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 Ответ

1 голос
/ 24 апреля 2010

Я не собираюсь просто отправлять код для вас. (Уже поздно, и я гарантирую опечатки, если я сделаю)

Прежде всего, вам нужно отметить поля формы в выходных данных, чтобы идентифицировать каждую строку. Вы можете сделать это с помощью массивов. Например, вместо name = "url" вы можете использовать name = "url []", а ваша переменная $ _POST будет содержать массив - ключ будет определять, с какой строкой вы связываетесь.

Вам также нужно что-то удалить. Это может быть простая ссылка или флажок. Флажок, вероятно, лучше, так как он позволит вам удалить много строк одновременно. Избавьтесь от кнопки «Удалить», которая у вас есть.

После того, как они у вас есть, вы можете просто перебирать каждую строку в вашей переменной $ _POST (и в файле базы данных) и редактировать или удалять по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...