没有jQuery或JS的PHP HTML排序/分页/搜索

时间:2015-06-25 10:08:34

标签: php html sorting pagination

我在php文件中有一个表单,如下所示(我在我的代码中将其设计为表格,但只显示此处的表格以便我可以解释当前的问题):

以下代码适用于搜索

echo '<form id="stat_form">
          <input form="stat_form" type="text" name="search" placeholder="Enter search term"  onfocus="this.placeholder = \'\'" onblur="this.placeholder = \'Enter search term\'">
          <input form="stat_form" type="submit" value="Search" action="'.$_SERVER['PHP_SELF'].'">
    </form>';

在进行了一些操作之后,以下内容被添加到排序(用作表格标题)的代码中,其中$ title1和$ title2与相应的Button值不同(因此使用&lt;按钮&gt;而不是&lt; input&gt;):

      echo '<button form="stat_form" name="sort" value="Name" action="'.$_SERVER['PHP_SELF'].'">'.$title1.'</button>
            <button form="stat_form" name="sort" value="Address" action="'.$_SERVER['PHP_SELF'].'">'.$title2.'</button>';

最后,在更多功能之后,为分页添加了以下功能。 $ prev_page,$ curr_page和$ next_page在我的代码中计算:

      echo '<button form="stat_form" name="page" value="'.$prev_page.'" action="'.$_SERVER['PHP_SELF'].'"'.($prev_page==$curr_page?" disabled":"").'>Prev</button>
      <button disabled>'.$curr_page.'</button>
      <button form="stat_form" name="page" value="'.$next_page.'" action="'.$_SERVER['PHP_SELF'].'"'.($next_page==$curr_page?" disabled":"").'>Next</button>';

现在我的问题是(假设我已经输入了搜索字符串):

  • 当我点击下一页/上一页按钮进行分页时,表格中没有发送“排序”值
  • 当我点击$ title1 / $ title2进行排序时,“页面”值未被发送

根据我上面解释的代码,我想始终从表单中发送3个不同的值:“搜索”,“排序”和“页面” 我怎样才能建立这个?

请不要建议使用任何库或外部工具。目前我无法将任何内容包含在我的代码中。

此外,由于这是我在论坛中的第一篇文章,我不确定我是否已将问题清楚。请让我知道,以便我可以进一步解释。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我一直在寻找解决方案一整天,但无法得到满意的答案。因此在这里使用一个工作。我会在这里发布,以防其他人:

唯一的修改是在分页中。我已将其从表单中删除并将其用作普通链接。缺点是当我进行排序时,页面值被重置。因为它不会影响我的项目。我倾向于使用这个解决方案。

  echo '<a href="'.$prev_page_url.'"><button class="buttons"'.($prev_page==$curr_page?" disabled":"").'>Prev</button></a>
        <button disabled>'.$curr_page.'</button>
        <a href="'.$next_page_url.'"><button class="buttons"'.($next_page==$curr_page?" disabled":"").'>Next</button></a>';

在上面的代码中, $ prev_page_url和$ nextpage_url计算为

$_SERVER['PHP_SELF'].http_build_query(<search/sort/page parameters>)