我正在制作一个编辑表格。
有两种形式,一种称为edit1.php
,另一种称为edit.php
。第二个应该从edit1.php
获取生成的id并使用它来生成进一步的查询。以下是2个文件的代码:
<table>
<tr>
<td align="center"><h4><b>EDIT DATA</b></h4></td>
</tr>
<tr>
<td>
<table border="3">
<form action="edit.php" method="get">
<?php
$vendors = "SELECT `vendor`.`v_id`,`vendor`.`v_name` FROM `stfood`.`vendor`";
$result = mysqli_query($con, $vendors);
while ($row = mysqli_fetch_array($result)){
echo ("<tr><td>'".$row["v_id"]."'</td>");
echo ("<td>'".$row["v_name"]."'</td>");
echo ("<td><a href=\"edit.php?id=".$row['v_id']."\">Edit</a></td></tr>");
}
?>
</form>
</table>
<?php
require 'init.php';
require 'functions.php';
?>
<html>
<head>
<title>Form Edit Data</title>
</head>
<body>
<table border=1>
<tr>
<td align=center>Form Edit vendor Data</td>
</tr>
<tr>
<td>
<table>
<?php
echo $_REQUEST['v_id'];
$vendor = "SELECT `vendor`.`v_name`, `vendor`.`v_email`,`vendor`.`v_desc`,`vendor`.`cont_id` FROM `stfood`.`vendor` WHERE `vendor`.`v_id` = '".$v_id."'";
$vendor_result = mysqli_query($con, $vendor);
$row = mysqli_fetch_array($vendor_result);
?>
<form method="post" action="edit_data.php">
<input type="hidden" name="id" value="<?php echo $row["v_id"];?>">
<tr>
<td>Name</td>
<td>
<input type="text" name="name" size="20" value="<?php echo $row["v_name"]; ?>">
</td>
</tr>
<tr>
<td>Email</td>
<td>
<input type="text" name="email" size="50" value="<?php echo $row["v_email"];?>">
</td>
</tr>
<tr>
<td>Vendor Description</td>
<td>
<input type="text" name="description" size="100" value="<?php echo $row["v_desc"];?>">
</td>
</tr>
<tr>
<td align="right">
<input type="submit"
name="submit value" value="Edit">
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
当我运行代码时,第一个表单显示所有相关数据,当我点击edit
链接时,页面被重定向,我可以看到URL中传递的v_id
,但是没有任何内容进入edit.php
文件。当我执行var_dump($row['v_id']);
时,我得到NULL
。
为什么v_id
中没有设置edit.php
?
答案 0 :(得分:1)
由于您的超链接如下所示:
<a href=\"edit.php?id=".$row['v_id']."\">Edit</a>
您的edit.php应该使用
echo $_GET['id'];
// or something like this
$received_id = $_GET['id'];
// do validation whether you received a good id or not and then move on
...
...
<input type="hidden" name="id" value="<?php echo $received_id;?>">
答案 1 :(得分:0)
尝试在$_GET['id']
$_REQUEST['v_id']
代替edit.php
此外,您是否在查询中使用$v_id
之前定义了它?
答案 2 :(得分:0)
edit.php
页面上:
<a href=\"edit.php?id=".$row['v_id']."\">Edit</a>
现在在您的edit1.php
上,您应首先拥有isset()
,然后按照以下步骤操作:
if(isset($_GET['id']){
$id = $_GET['id'];
//carry on blah3 ...
答案 3 :(得分:0)
在edit1.php中,您没有使用表单元素。值$ row ['v_Id']应该是表单元素输入的值,如此内部表单
<input type='hidden' name='v_I'd value ='<?php echo $row['v_id'] ?>'>