成功提交后的表单操作状态消息

时间:2012-03-25 15:23:31

标签: php mysql forms

表单删除存储在MySql数据库中与sql命令相关的页面(example.php)上的所有数据。

代码详情如下:

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语法在同一页面上显示表单操作状态消息(“Record deleted”)?

提前致谢。

3 个答案:

答案 0 :(得分:0)

你不能用纯PHP做,你需要使用ajax ....因为它关于客户端脚本和服务器端脚本...一旦提交你的表单,它被重定向到其他PHP脚本在服务器端...在客户端发布消息你只需要使用AJAX ......这是我视图中唯一的可能性

答案 1 :(得分:0)

成功删除后,您可以创建状态消息

// 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函数,在这种情况下,您将更改状态消息并显示消息,如下所示< / p>

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

第二种方法会更快。

答案 2 :(得分:0)

我终于解决了这个问题。

技巧是将查询字符串(键/值对)分配给标题位置变量,或者直接用它的关联值替换标题位置变量。

然后切换与函数和表单变量关联的查询字符串(键/值对),并在成功提交后在页面上显示表单操作状态消息的div包装div。