如果使用“a href”提交页面,则不会发布隐藏字段?

时间:2012-01-17 06:04:17

标签: php javascript

<?php
$sort=$_REQUEST['sortby']; 
 echo" $sort ";  
?>  
<html>
<head>  
</head>
    <body>  
<form method="get" id="thisForm" >  
          <table border=1>  
        <tr>  
            <td>  
                <a href="" name="say" onclick="javascript: sorting(0)">Day </a>
            </td>
            <td>
                <a href="" name="server" onclick="javascript: sorting(1)">Server </a>  
            </td>  
            <td>  
                <a href="" name="service" onclick="javascript: sorting(2)">Service </a>  
            </td>  
            <td>  
                <a href="" name="count" onclick="javascript: sorting(3)">Count </a>  
            </td>  
        </tr>  
    </table>    
        <input type="hidden" name="sortby"  id="sortby"/>  
    </form>  
    </body>  

<script type="text/javascript" >  

var sortArray=new Array("say","server","service","count");  
function sorting( cnt)  
{  
    alert(sortArray[cnt]);  
    document.getElementById("sortby").value=sortArray[cnt];  
}  

基于Header点击我正在尝试构建一个排序查询但是在点击“a href”链接提交后我无法获取隐藏字段发布的数据?

我已更改“a href”以提交按钮,如果我们点击相同的“排序依据”链接,您如何停止提交的页面。

4 个答案:

答案 0 :(得分:1)

默认情况下,锚标记(即A)不提交表单。您可以使用按钮或使用javascript提交表单。

您可以使用document.thisForm.submit()

从javascript提交表单

答案 1 :(得分:1)

以下是您遗失的内容:

  • 链接不提交带有输入数据的表单,只是更改了网址。
  • 提交表格。
  • 覆盖默认的<a>行为(例如,使用return false)。

sorting的更新版本:

var sortArray=new Array("say","server","service","count");  
function sorting(cnt)  
{  
    document.getElementById("sortby").value = sortArray[cnt];  
    document.getElementById("thisForm").submit();
    return false;
}  

您可以使用以下方式调用它:

<a href="" name="say" onclick="return sorting(0);">Day </a>

工作示例:http://jsbin.com/ukoton/3

另一种选择是使用流行的库jQuery,它可以大大简化你的代码:

$(function(){
  $('#thisForm a').click(function(ev){
    var sortValue = this.name;
    // an alternative to this.name is to use a data-sortBy='day' attribute, 
    // and then $(this).data('sortBy')
    $('#sortby').val(sortValue);
    $('#thisForm').submit();
    ev.preventDefault();
  });
});

工作示例:http://jsbin.com/ukoton/4

答案 2 :(得分:0)

嗯..我不是一个php家伙..所以我猜最初的4行试图从表单中获取sortby字段,反正href链接不等同于html表单提交,你需要明确提交表单,也许使用javascript来获取值

答案 3 :(得分:0)

如果需要,只需使用“提交”按钮并将其设置为类似链接的样式。这里不需要使用Javascript。

使用实际链接而不是“提交”按钮会使表单无法使用javascript的用户。这可能包括使用辅助工具的人。除此之外,它会使您的页面更复杂(添加不合逻辑的HTML,并需要Javascript),因此维护起来更复杂。