使用PHP和Javascript的多个提交按钮
我正在尝试提交一个带有多个提交按钮的表单。表单是使用Javascript提交的。我正在使用下面的api创建带有复选框的表列表 用于创建列表的控制器文件为使用PHP和Javascript的多个提交按钮,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我正在尝试提交一个带有多个提交按钮的表单。表单是使用Javascript提交的。我正在使用下面的api创建带有复选框的表列表 用于创建列表的控制器文件为 $data[] = array( 'column-1' => '<form action="index.php/index/sign" method="post" id="form1"> <input type="checkb
$data[] = array(
'column-1' => '<form action="index.php/index/sign" method="post" id="form1">
<input type="checkbox" name="vehicle[]" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle[]" value="Car">I have a car<br>',
'column-2' => '<img src="' . $iconPath . '" /> image #',
);
$list = new pm_View_List_Simple($this->view, $this->_request);
$list->setData($data);
$list->setColumns(array(
'column-1' => array(
'title' => 'select',
'noEscape' => true,
'searchable' => true,
),
'column-2' => array(
'title' => 'Description',
'noEscape' => true,
'sortable' => false,
),
));
$tools = array (
array (
'title' => 'Add',
'class' => 'sb-activate',
'link' => 'javascript: submitform()',
),
array (
'title' => 'Delete',
'class' => 'sb-activate',
'link' => 'javascript: submitform1()',
),
);
在上面的示例中,您可以看到有多个submit按钮,分别执行添加和删除操作。提交后都将转到“操作”符号,这意味着视图文件将是sign.phtml。主索引视图文件列表粘贴在下面
<script type="text/javascript">
function submitform()
{
document.forms["form1"].submit();
alert document.getElementById();
}
function submitform1()
{
document.forms["form1"].submit();
}
</script>
<?php echo $this->renderList($this->list); ?>
我的问题是表单提交重定向到同一个操作标志,并且只使用复选框值。但是我需要为不同的表单提交做不同的事情。因此,我需要在签名操作中区分添加和删除。我将能够从javascript函数发送任何参数到PHP签名函数,以便我能够区分PHP端的按钮
请不要建议使用不同名称的普通html提交按钮,因为我无法在此api中执行此操作。可以动态创建具有唯一值的隐藏元素。试试看。每个表单可以有多个提交按钮,只需检查post数据中的值即可 HTML: - 编辑:我读你的问题太快了。下面是一个JavaScript解决方案,它可能适合您 HTML
演示:您可以创建一个输入隐藏元素,在复选框选中/取消选中操作中,您可以使用Javascript为该隐藏元素赋值,并在服务器端PHP上检查相应的隐藏元素值以进行区分 您好,谢谢您的快速回复。我不太明白你的答案。请您用代码解释一下。不幸的是,正如前面提到的,在我的情况下,使用普通html的多个提交按钮是不可能的。我的错。看一看我的编辑,看看是否有帮助。你能解释一下吗
$data[] = array('column-1' => '<form action="index.php/index/sign" method="post" id="form1">
<input type="checkbox" name="vehicle[]" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle[]" value="Car">I have a car<br>
<--Start: Add this line to -->
<input type="hidden" name="actionVal" id="actionVal" value="">
<--End: Add this line to -->',
'column-2' => '<img src="' . $iconPath . '" /> image #',
);
<script type="text/javascript">
function submitform(){
<--Start: Add this line to -->
document.getElementById('actionVal').value = 'add';
<--End: Add this line to -->
document.forms["form1"].submit();
}
function submitform1()
{
<--Start: Add this line to -->
document.getElementById('actionVal').value = 'delete'
<--End: Add this line to -->
document.forms["form1"].submit();
}
</script>
//PHP
if($_POST['actionVal']=='add') {
// add
} else if($_POST['actionVal']=='delete') {
// delete
}
if($_POST['add']) {
// add
} else if($_POST['delete']) {
// delete
}
<form name="form1">
<input id="formAdd" type="button" value="Add">
<input id="formDelete" type="button" value="Delete">
</form>
document.getElementById("formAdd").addEventListener('click', function() {
// do stuff for add
// submit form
});
document.getElementById("formDelete").addEventListener('click', function() {
// do stuff for delete
// submit form
});
$data[] = array('column-1' => '<form action="index.php/index/sign" method="post" id="form1">
<input type="checkbox" name="vehicle[]" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle[]" value="Car">I have a car<br>
<--Start: Add this line to -->
<input type="hidden" name="actionVal" id="actionVal" value="">
<--End: Add this line to -->',
'column-2' => '<img src="' . $iconPath . '" /> image #',
);
<script type="text/javascript">
function submitform(){
<--Start: Add this line to -->
document.getElementById('actionVal').value = 'add';
<--End: Add this line to -->
document.forms["form1"].submit();
}
function submitform1()
{
<--Start: Add this line to -->
document.getElementById('actionVal').value = 'delete'
<--End: Add this line to -->
document.forms["form1"].submit();
}
</script>
//PHP
if($_POST['actionVal']=='add') {
// add
} else if($_POST['actionVal']=='delete') {
// delete
}