我想知道是否有人可以帮助我。
我将this格式放在一起,正如您在页面底部看到的那样,该格式允许用户添加和删除与主记录关联的图像文件。
我遇到的问题是,有多个按钮后面有“提交”操作,即:“上传此文件”,“删除所选图像”,“查看所选图像”和“提交”,因为对此,我使用的按钮并不重要,唯一执行的操作是完整的记录提交。
有人可能请告诉我,我如何确保每个按钮背后的“提交”操作彼此独立。
非常感谢和亲切的问候
答案 0 :(得分:2)
如果你把每个按钮放在一个单独的<form></form>
中,它应该没问题。这可能在您当前的设置中吗?
假设你做不到上述事情:
形式:
<form name='myForm'>
<input type='hidden' id='hiddenSubmit' name='hiddenSubmit' value=''/>
//lots of fields here
<input type='button' name='action1' onclick='changeHiddenSubmit(this.name)'/>
//some more fields
<input type='button' name='action2' onclick='changeHiddenSubmit(this.name)'/>
//etc...
</form>
JS:
<script>
function changeHiddenSubmit(name){
document.getElementById('hiddenSubmit').value = name;
document.myForm.submit();
}
</script>
PHP:
<?php
switch($_POST['hiddenSubmit'){
case 'action1':
break;
case 'action2':
break;
}
?>
答案 1 :(得分:2)
您不需要为每个按钮使用单独的表单。 您可以在提交按钮的“名称”中使用不同的值。然后在服务器上,您可以检查'form_action'的值
示例:
<input name="form_action[delete]" type="submit" value="Delete">
<input name="form_action[update]" type="submit" value="Update">
根据需要设置这些按钮。 在服务器上检查$ _POST ['form_action']的值
答案 2 :(得分:1)
答案 3 :(得分:0)
如果您将提交按钮设为唯一的name
,则可以在服务器端告知其中哪一个被点击(导致提交表单)。
试试这个例子:
<?php
if (isset($_POST['b1'])) {
echo 'Button 1 was pressed.';
}
if (isset($_POST['b2'])) {
echo 'Button 2 was pressed.';
}
if (isset($_POST['b3'])) {
echo 'Button 3 was pressed.';
}
?>
<form action="" method="post">
<input type="submit" name="b1" />
<input type="submit" name="b2" />
<input type="submit" name="b3" />
</form>