1

我有 html 表单

我正在使用<a href="#" onclick="document.aa.submit()">而不是提交按钮

我的代码将更好地解释我的问题..

<html>
<form name="aa" action="aa.php" method="post">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
<a href="#" onclick="document.aa.submit()">Delete</a>
<a href="#" onclick="document.aa.submit()">Move</a>
</form>
</html>

aa.php

<?php
print_r($_POST);
?>

结果

Array ( [posts] => Array ( [0] => 1 [1] => 2 ) ) 

现在的问题是:

如何知道用户点击了删除或移动?

笔记:

我知道如果我使用<input submit>它会解决问题

但由于某种原因我不能使用提交按钮

笔记2

问题是如何通过php检测它。

例子:

    Array ( [posts] => Array ( [0] => 1 [1] => 2 ['submit'=>'delete']) ) 

if('delete'){
mysql_query("delete from...")
}
else{
mysql_query("update/move ....");
}
4

5 回答 5

1

只有PHP?...没有javascript?如果您使用的是 javascript,我会建议使用调用一些 javascript 的按钮而不是链接来提交表单的想法,它可能会给您带来更好的结果,因为您还可以在它之前进行一些调用来设置表单的一些隐藏字段已提交。另外,为什么提交被破坏?

请查看以下页面,了解如何使用隐藏字段。

http://www.tizag.com/htmlT/htmlhidden.php

在发布后,您应该能够像用户提交它一样获取隐藏字段,然后在 php 而不是 html 中进行计算。

于 2012-06-28T00:03:08.597 回答
1

干得好:

<html>
<form name="aa" action="aa.php" method="post">
<input type="hidden" name="action" value="">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
<a href="#" onclick="document.aa.action='delete';document.aa.submit()">Delete</a>
<a href="#" onclick="document.aa.action='move';document.aa.submit()">Move</a>
</form>
</html>
于 2012-06-28T00:22:29.750 回答
0

使用 jQuery,您甚至可以摆脱onclick标签中的事件,只需添加以下 jQuery。

$(document).ready(function() {
    $("a").click(function(event) {
        alert($(this).html()) // Replace this line with the one below for your code
        // document.aa.submit($(this).html())   
    });
});​

$(this).html()返回 clicka标记的 innerhtml。例如“删除”或“移动”。然后您可以在您的 php 中使用它来识别点击的链接

于 2012-06-28T00:09:40.097 回答
0

您需要对表单进行一些调整,以便 Post 值知道您提交的是哪个选项

  <form name="aa" action="aa.php" id='aa' method="post">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
    <a href="#" onclick="submit_function(this)" rel="delete">Delete</a>
        <a href="#" onclick="submit_function(this)" rel="move">Move</a>
        <input id="submit_type" type="hidden" name="task">
        </form>

在带有 jquery 的 js 中

function submit_function( item ){
    if( item.rel == 'move')
    {
    document.getElementById('submit_type').value ='move'
    }
    else if( item.rel == 'delete')
    {
    document.getElementById('submit_type').value ='delete'
    }

    document.getElementById('aa').submit()

    }

在php中

 if( $_POST['task'] == 'move' )
{
//do move stuff
}

    if( $_POST['task'] == 'delete' )
{
//do delete stuff
}
于 2012-06-28T00:26:03.663 回答
0

解决方案:

<script>
function createInput(action){
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "action");
input.setAttribute("value", action);
document.getElementById("forsm").appendChild(input);
document.aa.submit();
}
</script>

<html>
<form name="aa" id="forsm" action="aa.php" method="post">
<input type="checkbox" name="posts[]" value="1">
<input type="checkbox" name="posts[]" value="2">
<a href="#" id="delete" onclick="createInput('delete');">Delete</a>
<a href="#" id="move" onclick="createInput('move');">Move</a>
</form>
</html>

结果

数组([帖子] => 数组([0] => 2)[动作] => 移动)

非常感谢生锈的韦伯,这给了我这个想法

于 2012-06-28T00:27:16.410 回答