我的代码出了问题。我使用textarea来更新我的数据库。当我保存更改时,页面会刷新并显示预编辑的文本。
在搜索线程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 :(得分:0)
尝试使用
header('Location: ./kommers_edit.php?id=$id');
之后,
在kommers_edit.php中,创建一个获取id的脚本
答案 1 :(得分:0)
您有一个表单,该表单与表单数据的表单发布到同一页面。如果页面捕获表单帖子,它将更新数据库中的表单。
由于这是更新,我可以假设此条目已存在吗?
所以我想你在提交之前有一个选择来填充表格数据?只需确保在更新后再次运行它。 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 [&#39; sentvaluename&#39; ]并停止发生SELECT查询。