我目前以表格格式显示表格产品中的所有信息,我有一个按钮ADD,点击时应该只将表格产品的ID,名称和价格添加到同一数据库中的表product_add。但我的问题是当我点击按钮ADD时,在product_add表中没有输入任何内容。
<?php
include'connect.php';
$image =$_GET['image'];
$id =$_GET['id'];
$name =$_GET['name'];
$price=$_GET['price'];
$sql="SELECT * FROM product";
$result = mysql_query($sql);
if($result>0)
{
?>
<form method="post" id="form" name="form">
<table border='1'>
<?php
while ($row = mysql_fetch_array($result))
{
extract($row);
?>
<tr>
<td><?php echo $row['id']?></td>
<td><img src=<?php echo $row['image'] ?> /></td>
<td><?php echo $row['name']?></td>
<td><?php echo $row['price']?></td>
<td><input type='button' value='ADD' id="insert" name="insert"/></td>
</tr>
<?php
}
?>
</table>
</form>
<?php
}
if(isset($_REQUEST['insert']))
{
$insert = "INSERT INTO product_add(id, name, price)
VALUES ('$row[id]','$row['name']','$row['price']')";
$insertQuery=mysql_query($insert);
}
?>
</body>
</html>
我已更新了如下所示的代码,但表格产品的最后一行正在添加到表product_add中。当我点击提交按钮时,我想只添加一个特定的行。
<?php
include'connect.php';
$image = isset($_GET['image']) ? $_GET['image'] : "";
$id = isset($_GET['id']) ? $_GET['id'] : "";
$name = isset($_GET['name']) ? $_GET['name'] : "";
$price= isset($_GET['price']) ? $_GET['price'] : "";
$sql="SELECT * FROM product";
$result = mysql_query($sql);
if($result>0){
?>
<form method="POST" id="form" name="form">
<table border='1'>
<tr>
<th>Id</th>
<th>Image</th>
<th>Name</th>
<th>Price MUR</th>
</tr>
<?php
while ($row = mysql_fetch_array($result)){
extract($row);
?>
<tr>
<td><input name="id" value="<?php echo htmlspecialchars($row['id']); ?>">
</td>
<td><img src=<?php echo $row['image'] ?> width='120' height='100'/></td>
<td><input name="name" value="<?php echo htmlspecialchars($row['name']);
?>"></td>
<td><input name="price" value="<?php echo htmlspecialchars($row['price']);
?>"></td>
<td>
<input id="submit" type="submit" name="submit" value='Add to cart' />
</td>
</tr>
<?php
}
?>
</table>
</form>
<?php
}
if (isset($_REQUEST['submit']))
{
$insert = "INSERT INTO product_add(id, name, price) VALUES ('$id',
'$name','$price')";
$insertQuery=mysql_query($insert);
}
?>
答案 0 :(得分:1)
除了方法(如果你的表单使用POST,你应该在php中使用$_POST
),你没有任何表单字段。
例如:
<?php echo $row['id']?>
应该是这样的:
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
和
<?php echo $row['name']?>
应该是:
<input name="name" value="<?php echo htmlspecialchars($row['name']); ?>">
等
你也应该切换到PDO或mysqli和准备好的语句,因为你现在的代码很容易被sql注入。而html中的ID必须是唯一的。
答案 1 :(得分:1)
有一点是,你有多个
<input type='button' ...>
具有相同的id="insert"
。 id
在网页中必须是唯一的。
另一方面,您需要submit
输入来发送表单
<input type="submit" ...>
来自Submit Button state (type=submit)
input元素表示一个按钮,激活后,提交表单。
<input type='button' ...>
没有任何反应,因为它没有默认操作,请参阅Button state (type=button)
input元素表示没有默认行为的按钮。
如果您希望<input type='button' ...>
提交表单,则必须使用一些Javascript代码。
答案 2 :(得分:0)
一个想法是在单击按钮后加载内容。
<强> JS 强>
$("#button").click(function() {
$("#holder").load("insert.php");
});
<强> insert.php 强>
$db->query("INSERT INTO table VALUES('one','two','three')");