Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP和Javascript的多个提交按钮_Javascript_Php_Jquery_Html_Forms - Fatal编程技术网

使用PHP和Javascript的多个提交按钮

使用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

我正在尝试提交一个带有多个提交按钮的表单。表单是使用Javascript提交的。我正在使用下面的api创建带有复选框的表列表

用于创建列表的控制器文件为

$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
}