Php 通过单击链接提交表单,而不使用提交按钮

Php 通过单击链接提交表单,而不使用提交按钮,php,javascript,jquery,forms,Php,Javascript,Jquery,Forms,我正在尝试通过单击链接提交表单,而不使用提交按钮。表单的每个元素都有其值,单击时必须提交该值。它不起作用。我可以使用JavaScript或jQuery。请看一下代码: <head> <style> div { width: 100px; height: 100px; padding: 10px; margin: 10px; background-color: #EEEEEE; } </style> </

我正在尝试通过单击链接提交表单,而不使用提交按钮。表单的每个元素都有其值,单击时必须提交该值。它不起作用。我可以使用JavaScript或jQuery。请看一下代码:

<head>
  <style>
  div {
    width: 100px;
    height: 100px;
    padding: 10px;
    margin: 10px;
    background-color: #EEEEEE;
  }
</style>
</head>
<body>
<form name="myform" action="test.php" method="post">
<div>
<a href="javascript: submitform()" value='h1'>h1</a><br>
<a href="javascript: submitform()" value='h2'>h2</a><br>
<a href="javascript: submitform()" value='h3'>h3</a><br>
</div>
</form>
<script type="text/javascript">
function submitform()
{
  document.myform.submit();
}
</script>
<div>
<?php
$form=$_POST['myform'];
echo $form.' bla<br>';
?> 
</div>
</body>
</html>

div{
宽度:100px;
高度:100px;
填充:10px;
利润率:10px;
背景色:#EEEEEE;
}



函数submitform() { document.myform.submit(); }
带着ofir baruch的建议-工作

<head>
<script src="jquery.js" type="text/javascript"></script>
  <style>
  div {
    width: 100px;
    height: 100px;
    padding: 10px;
    margin: 10px;
    background-color: #EEEEEE;
  }
</style>
</head>
<body>
<form name="myform" action="test.php" method="post">
<input type='hidden' id='hx' name='hx' value=''>

<div>
<a href="javascript: submitform('h1')">h1</a><br>
<a href="javascript: submitform('h2')">h2</a><br>
<a href="javascript: submitform('h3')">h3</a><br>
</div>
</form>
<script type="text/javascript">
function submitform(val)
{
  $("#hx").val(val);
  document.myform.submit();
}
</script>
<div>
<?php
echo $_POST['hx'];
?> 
</div>
</body>
</html>

div{
宽度:100px;
高度:100px;
填充:10px;
利润率:10px;
背景色:#EEEEEE;
}



函数提交表单(val) { $(“#hx”).val(val); document.myform.submit(); }

函数提交表单(val)
{
$.post('.',{myform:val});
}

首先,我不会使用
href=“javascript:submitForm();”
,而是使用
href=“#”onclick=“submitForm(this)”

在表单中添加隐藏字段

<input type="hidden" value="" id="hiddenId" />

在submitForm方法中,将myform更改为forms[0]。我相信这将更加方便跨浏览器。不管是谁。。。向方法中添加一个参数,以便可以设置隐藏字段值

<script type="text/javascript"> 
function submitform(el) 
{   
  document.getElementById('hiddenId').value = el.value;
  document.forms[0].submit(el); 
} 
</script> 

函数提交形式(el)
{   
document.getElementById('hiddenId')。value=el.value;
文件.表格[0].提交(el);
} 

后面添加下一行:

它是如何工作的?

1.单击链接

2.js函数更改隐藏输入字段的值

3.js函数提交表单

4.$\u POST与隐藏的输入值相关
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script>
            $(function() {
                $("form a").click(function() {
                    var value = $(this).data('value');
                    $.post('.', { myform: value });
                    return false;
                });
            });
        </script>
    </head>
    <body>
        <form>
            <a href="" data-value="h1">h1</a>
            <a href="" data-value="h2">h2</a>
            <a href="" data-value="h3">h3</a>
        </form>
    </body>
</html>
$(函数(){ $(“表格a”)。单击(函数(){ var值=$(this.data('value'); $.post('.',{myform:value}); 返回false; }); });
未提交表单的。它发出一个Ajax请求。@Quentin-form.submit()和$.post()执行相同的操作:它们对web服务器执行post操作。唯一的区别是第二个是异步post请求。它不会更方便跨浏览器,也不会提交值。@Quentin-document.forms[]是W3C@OfirBaruch推荐的-我在发布您的答案前几分钟更正了我的答案。我们同时在打字。其实没关系,我们都提出了相同的解决方案,所以它一定有优点:)这正是我所做的。你能更具体地说明什么不起作用吗?(有错误吗?)我刚刚发布了代码和您的建议。当您单击链接时,它不会返回任何内容。您是否导入了jquery库?那么我如何获得提交的值<代码>代码
代码
<input type='hidden' id='hx' name='hx' value=''>
<a href="javascript: submitform('h1')">h1</a><br>
<script type="text/javascript">
function submitform(val)
{
  $("#hx").val(val);
  document.myform.submit();
}
</script>
echo $_POST['hx'];
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script>
            $(function() {
                $("form a").click(function() {
                    var value = $(this).data('value');
                    $.post('.', { myform: value });
                    return false;
                });
            });
        </script>
    </head>
    <body>
        <form>
            <a href="" data-value="h1">h1</a>
            <a href="" data-value="h2">h2</a>
            <a href="" data-value="h3">h3</a>
        </form>
    </body>
</html>