2个表单带有一个提交按钮$ _POST方法

时间:2014-09-12 14:09:01

标签: javascript php forms submit

我想在网站的不同部分将两个表单合并为一个提交按钮。它几乎是一个复选框删除mysql行脚本。这是一张照片。

enter image description here

我要做的是删除SELECTETE,删除左侧选中的复选框行。

我无法让它发挥作用。

我的表单名称为按钮的 delete1 ,整个表格的 delete2 作为表单。

我尝试使用javascript将两种表单合并为一种。

function functionCaller()
{
document.getElementById('delete1').submit();
document.getElementById('delete2').submit();
}

它似乎无法奏效。

有没有人有任何想法,我非常想在页面的另一部分使用提交按钮,该按钮对应于复选框的提交按钮,而不是同一表单的一部分。我希望这是有道理的。

更新。新增代码。

DELETE SELECTED 按钮的表格与表格分开

<form action="" method="post" name="delete">
<div style=" float: right;">
<input type="submit" value="Delete Selected" id="delete" onclick="functionCaller()" name="delete">
</div>
</form>

以下是包含表格的表单

<form action="" method="post" name="delete">
   <div class="table">
      <div class="table-head">
         <div data-label="select" class="column"><input type="checkbox" id="selectall"></div>
         <div data-label="id" class="column">ID</div>
         <div data-label="avatar" class="column">Avatar</div>
         <div data-label="username" class="column">Username</div>
         <div data-label="email" class="column">Email</div>
         <div data-label="active" class="column">Active</div>
         <div data-label="level" class="column">Level</div>
         <div data-label="modify" class="column">Modify</div>
      </div>
      <div class="row">
         <div data-label="select" class="column"><input type="checkbox" class="selectedId" name="checkbox[]" id="checkbox[]" value="94" onclick="resetSelectAll();"></div>
         <div data-label="id" class="column">94</div>
         <div data-label="avatar" class="column"><img alt="" src="uploads/540d248343caa.JPG"></div>
         <div data-label="username" class="column">admin</div>
         <div data-label="email" class="column">brian.cherdak@gmail.com</div>
         <div data-label="active" class="column">Yes</div>
         <div data-label="level" class="column">Admin</div>
         <div data-label="modify" class="column"><a href="admin_update.php?id=94"><img alt="" src="images/tool.png"></a>  <a onclick="delete_user(94);" href="#"><img alt="" src="images/delete.png"></a></div>
      </div>
      <div class="row">
         <div data-label="select" class="column"><input type="checkbox" class="selectedId" name="checkbox[]" id="checkbox[]" value="287" onclick="resetSelectAll();"></div>
         <div data-label="id" class="column">287</div>
         <div data-label="avatar" class="column"><img alt="" src="uploads/54052a0accd62.gif"></div>
         <div data-label="username" class="column">Quyn</div>
         <div data-label="email" class="column">brian.cherdak@gmail.com</div>
         <div data-label="active" class="column">Yes</div>
         <div data-label="level" class="column">Regular</div>
         <div data-label="modify" class="column"><a href="admin_update.php?id=287"><img alt="" src="images/tool.png"></a>  <a onclick="delete_user(287);" href="#"><img alt="" src="images/delete.png"></a></div>
      </div>
   </div>
</form>

它们都在页面的单独一侧,但我希望删除按钮几乎是表格形式的删除按钮。

这是我的删除p​​hp代码的样子

<?php
if(isset($_POST['delete']))
{
for($i=0;$i<count($_POST['checkbox']);$i++){
$del_id = $_POST['checkbox'][$i];
$sql_del = "DELETE FROM users WHERE id='$del_id'";
$result_del = mysql_query($sql_del);
}
}
?>

2 个答案:

答案 0 :(得分:1)

评论后更新了答案:

<form action="" method="post" name="delete1" id='form1' method="POST" onsubmit="merge(); return true;">
<div style=" float: right;">
<input type="submit">
</div>
</form>

<form action="" method="post" name="delete2" id='form2'>
    // your checkboxes...
</form>

<script type="text/javascript">
    function merge() {
        $result = $("#form1");
        $("#form2 input, #form2 select").each(function() {
            if($(this).is(':checked')){
                $result.append("<input type='hidden' name='"+$(this).attr('name')+"' value='"+$(this).val()+"' />");
            }
        });
    }
</script>

答案 1 :(得分:1)

提交功能不好。只有第一次提交才会发生。 我会在删除表单中设置一个隐藏的输入值。我还没有测试过这个,但我想每个人都会明白这个想法。

这里有一些jQuery:

functionCaller = function(e){
    e.preventDefault(); // Just to be sure the submit doesn't go without us
    var a = []
    $(':checkbox').each(function(){
        if($(this).prop('checked') === true) a.push($(this).val());
    });
    $('#hidden_input').val(a.toString()); // Explode by , (comma) in php
    document.getElementById('delete1').submit(); // Do form submit now
}

一些PHP:

if(isset($_POST['delete'])){
$a = explode(','$_POST['hidden_input']);
    for($i=0;$i<count($a);$i++){
        $del_id = $a[$i];
        $sql_del = "DELETE FROM users WHERE id='$del_id'";
        $result_del = mysql_query($sql_del);
    }
}

HTML:

<form action="" method="post" name="delete">
<div style=" float: right;">
<input type="submit" value="Delete Selected" id="delete" onclick="functionCaller()" name="delete">
<input type="hidden" value="" id="hidden_input" name="hidden_input">
</div>
</form>