Сообщение о статусе действия формы после успешной отправки - PullRequest
0 голосов
/ 25 марта 2012

Форма удаляет все данные на странице (example.php), хранящиеся в базе данных MySql, которые имеют отношение к команде sql.

Ниже приведены подробности кода:

if ((isset($_POST['id'])) && ($_POST['id'] != "")) {
  $deleteSQL = sprintf("DELETE FROM users WHERE id=%s",
                       GetSQLValueString($_POST['id'], "int"));


  mysql_select_db($database_example, $example);
  $Result1 = mysql_query($deleteSQL, $example) or die(mysql_error());


  $deleteGoTo = "example.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}

$colname_deleterecord = "5";
if (isset($_GET['id'])) {
  $colname_deleterecord = $_GET['id'];
}
mysql_select_db($database_example, $example);
$query_deleterecord = sprintf("SELECT id, user_name, email, address FROM users WHERE id = %s", GetSQLValueString($colname_deletetrecord, "int"));
$deleterecord = mysql_query($query_deleterecord, $example) or die(mysql_error());
$row_deleterecord = mysql_fetch_assoc($deleteecord);
$totalRows_deleterecord = mysql_num_rows($deleterecord);

 <form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <label>
      <input type="submit" name="Delete Record" id="Delete Record" value="Delete Record" />
    </label>
    <input name="id" type="hidden" id="id" value="<?php echo $row_deleterecord['id']; ?>" />
  </form>

Как отобразить сообщение о состоянии действия формы, например ("Запись удалена") на той же странице с чистым синтаксисом php после его успешной отправки?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 25 марта 2012

После успешного удаления вы создаете свое статусное сообщение,

// After mysql delete command
$msg = urlencode("Record deleted");

Отредактируйте команду header, чтобы она выглядела так

header(sprintf("Location: %s", $deleteGoTo . ?msg={$msg}));

Затем выберите, где вы хотите отобразить сообщение на своей странице, и введите код

echo isset($_GET['msg']) ? urldecode($msg) : ''; // This line will display the content of the variable $msg if it is set

Я вижу, что вы отправляете форму на той же странице, вам не нужно использовать функцию header, в этом случае вы бы изменили сообщение о состоянии и отобразили сообщение, чтобы оно выглядело так

$msg = "Record deleted";
echo isset($msg) ? $msg : ''; // This line will display the content of the variable $msg if it is set

Второй метод будет быстрее.

0 голосов
/ 27 марта 2012

Я наконец решил проблему.

Хитрость заключается в том, чтобы назначить строку запроса (пара ключ / значение) переменной местоположения заголовка или напрямую заменить переменную местоположения заголовка на соответствующее значение.

Затем переключить строку запроса (пара ключ / значение) в сочетании с функцией и переменной формы и обернуть ее тегом div, где сообщение о статусе действия формы должно отображаться на странице после успешной отправки.

0 голосов
/ 25 марта 2012

вы не можете сделать это с чистым php, вам нужно сделать это с помощью ajax .... потому что это касается клиентских сценариев и серверных сценариев ... как только ваша форма отправлена, она перенаправляется на другой php-скрипт по адресу на стороне сервера ... в приложении для публикации сообщений на стороне клиента, вам просто нужно использовать AJAX ... это единственная возможность, на мой взгляд

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