[英]undefined variable row in edit text
此代碼有效,它編輯了我要編輯的文本,但是顯示錯誤消息,表明我聲明了未定義的變量行。
<?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>
我相信這是由於您在表單中回顯了$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塊不會運行,因此這些變量是不確定的。
我仍然是Web編程的新手,但我猜想發生該錯誤的原因是當未執行第一個條件語句時。
但是,如果第一個if語句被執行或為true,那么您的代碼就可以了。
我修好了它! 我想跟你有完全一樣的探索。 好吧,這對我有用。
我假設if( isset( $_GET['edit']))
是用於從edit.php?edit=No
獲得id信息edit.php?edit=No
(“ No”是我所指的id,因為您使用的變量是$No
,通常是整數,可能在相應的表中是唯一值)。
經過大量研究和浪費時間,我只是嘗試了一下。 將此添加到<form>
:
更改
<form action ="edit.php" method = "POST">
至
<form action ="edit.php?edit=<?php echo $row[0];?>" method = "POST">
在這種情況下,您使用$row[0]
但它可能是行中的另一個位置而不是0,具體取決於sql表中的唯一值。
我正在猜測(不是該HTML表單的專家),但是我認為當您提交表單時,頁面會以某種方式刷新( form action = "edit.php..."
)並丟失$_GET
信息(否,id),所以您必須在表單操作中添加?edit=No
部分,以便整個事情可以再次獲得很少的數目,而不會迷失在表中的哪一行上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.