您好我正在尝试为每个按钮名称指定一个唯一编号的名称。这些按钮对中最多可以有50个,每对都会引用一个订单。 (这是一个实践estore im building的管理页面)无论如何,他们的名字当前是“dele_ord”和“ship_ord”我希望它(不知何故)Dele_ord($ i)所以每个按钮都被编号,即: dele_ord34
一旦我有了这个设置,我将使用if(isset($ _ POST(dele_ordXX){...}来运行数据库查询,删除或修改与按钮相关的订单。
我是php和mysql的新手,想要更好地学习它。
$i=1;
while($i<=50)
{
echo '<h5>'.$row['o_id'].' || '.$row['first_name'].' || '.$row['last_name'].' || '.$row['prod_id'].' || '.$row['prod_title'].' || '.$row['prov'].' || '.$row['city'].' || '.$row['street'].' || '.$row['s_instruct'].' || '.$row['order_time'].' || '.$row['ship_status'].'</h5>';
echo'<form action="admin.php" method="post" class="dele_o"><input type="button" name="delete_ord" value="Delete Order"></form>';
echo'<form action="admin.php" method="post" class="ship_o"><input type="button" name="ship_ord" value="Ship Order"></form> <br />';
$row = mysqli_fetch_array($result);
$i++;
}
mysqli_close($link);
?>
答案 0 :(得分:1)
每个按钮不需要单独的<form>
标记,您可以在同一表单中使用不同名称的多个提交按钮。
无论如何,要回答你的问题,如果你的echo命令使用双引号“...”而不是单个'...',那么php允许你在你的字符串中嵌入变量,例如:
$i = 5;
echo "<input type=\"button\" name=\"delete_ord$i\" value=\"Delete Order\">";
那将输出
<input type="button" name="delete_ord5" value="Delete Order">
请注意我是如何使用\来转义字符串中的双引号,但如果您愿意,也可以使用单引号作为HTML属性。
答案 1 :(得分:1)
嗯,有趣的是,你是用你自己的表单上下文单独包装每个按钮,也许你可以根据提交的按钮完成你要找的东西。
在任何一种情况下,您都应指定隐藏值以指示订单的ID:
<form action="admin.php" method="post" class="dele_o">
<input type="hidden" name="order_id" id="$i" />
<input type="submit" name="delete_ord" value="Delete Order" />
</form>
<form action="admin.php" method="post" class="ship_o">
<input type="hidden" name="order_id" id="$i" />
<input type="submit" name="ship_ord" value="Ship Order" />
</form>
然后在接受POST方面你可以做到:
$order_id = $_POST["order_id"];
if(isset($_POST["delete_ord"])) {
// Delete order by $order_id
}
if(isset($_POST["ship_ord"])) {
// Ship order by $order_id
}
答案 2 :(得分:0)
Nick的答案是正确的,但我认为有一个更好的方法可以做到这一点。
不要回显那条长行,而是关闭PHP标记并将数字的动态元素放在PHP标记内。
while(loop){
?>
<input type="button" name="delete_ord" value="<?php echo $i ?>">
<?php
}
在帖子页面上,您可以访问$ _POST [“delete_ord”]获取正确的ID
答案 3 :(得分:-1)
不要使用form
或button
来实现此目的。只需使用锚点。
for($i = 1; $i <= 50; $i++){
echo '<h5>'.$row['o_id'].' || '.$row['first_name'].' || '.$row['last_name'].' || '.$row['prod_id'].' || '.$row['prod_title'].' || '.$row['prov'].' || '.$row['city'].' || '.$row['street'].' || '.$row['s_instruct'].' || '.$row['order_time'].' || '.$row['ship_status'].'</h5>';
echo'<a href="admin.php?action=delete&id=' . $row['o_id'] .'">Delete Order</a>';
echo'<a href="admin.php?action=ship&id=' . $row['o_id'] .'">Ship Order</a>';
//$row = mysqli_fetch_array($result); // what is this for?
$i++;
}
然后点击;
<?php
if(isset($_GET['action']) AND isset($_GET['id'])){
switch($_GET['action']){
case "delete":
// do action for deletion $_GET['id']
break;
case "ship":
// do action for shipment $_GET['id']
break;
default:
die('unknown action');
break;
}
}
作为对表单与超链接的响应。表单用于提交访问者输入的数据。超链接用于页面请求。在这种情况下,根本没有理由使用表单,它没有添加任何价值或安全性,只是使它更复杂。无论使用表单还是超链接,您都需要通过检查请求URL的活动用户是否已登录并具有执行所请求的权限来保护您的页面。如果您的代码不安全,使用超链接只是不安全,使用表单,这是完全相同的。 汤姆的回复是完全垃圾,没有任何事实,否则请告诉我他们的论点。