此代码有效,它编辑了我想要编辑的文本,但是出现了一个错误,表明我声明了一个未定义的变量行。
<?php
require("dbc.php");
if( isset( $_GET['edit']))
{
$no = $_GET['edit'];
$res = mysql_query("SELECT* From description_tbl Where No = '$no'");
$row = mysql_fetch_array($res);
}
if( isset($_POST['phome']))
{
$phome = $_POST['phome'];
$No = $_POST['id'];
$sql ="UPDATE Description_tbl set Describ = '$phome' Where No = '$No'";
$res = mysql_query($sql) or die("could not update".mysql_error());
echo "<meta http-equiv='refresh' content = '0;url = bHome.php'>";
}
?>
<form action ="edit.php" method = "POST">
<textarea rows="10" cols="70" name="phome"><?php echo $row[1];?></textarea>
<input type = "hidden" name = "id" value = "<?php echo $row[0];?>">
<br>
<input type = "submit" value = "Save">
</form>
答案 0 :(得分:3)
我认为这是由于您在表单中回显的$row
,您需要检查它们是否也已设置:
<textarea rows="10" cols="70" name="phome">
<?php echo isset($row[1]) ? $row[1] : '';?>
</textarea>
<input type="hidden" name = "id" value = "<?php echo isset($row[0]) ? $row[0] : '';?>">
当表单未处于编辑模式时,这些变量是未定义的,因为if块不会运行。
答案 1 :(得分:1)
我仍然是网络编程的新手,但我想这个错误发生的原因是第一个条件语句没有被执行。
但是如果第一个if语句被执行或者为真,那么你的代码就可以了。
答案 2 :(得分:0)
我固定了它!我想和你有完全一样的探测。嗯,这对我有用。
我假设if( isset( $_GET['edit']))
用于从edit.php?edit=No
获取ID信息(&#34; No&#34;我称之为id,因为您使用的变量是{ {1}},通常是整数,可能是相应表中的唯一值。)
经过大量的研究和失去的时间后,我才尝试了这个。将其添加到$No
:
更改
<form>
到
<form action ="edit.php" method = "POST">
在这种情况下,您使用<form action ="edit.php?edit=<?php echo $row[0];?>" method = "POST">
但它可能是行中的另一个位置而不是0,具体取决于sql表中的唯一值。
我猜测(不是html格式的专家),但我认为当您提交表单时,页面会以某种方式刷新($row[0]
)并丢失form action = "edit.php..."
信息(否,ID)所以你必须将$_GET
部分添加到表单操作中,这样整个事情就可以再次得到一些小数字而不会迷失在你工作的表格的哪一行。