PHP HTML Sorting/Pagination/Search 没有 jQuery 或 JS
PHP HTML Sorting/Pagination/Search without jQuery or JS
我在 php 文件中有一个表格,如下所示(我在我的代码中将其设计为 Table,但此处仅显示表格,以便我可以解释我当前的问题) :
以下代码用于搜索
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>';
经过一些操作后,在排序(用作table headers)的代码中添加了以下内容,其中$title1和$ title2 与相应的 Button 值不同(因此使用
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>';
最后,在添加了更多功能之后,为 Pagination 添加了以下内容。 $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>';
现在我的问题是(假设我已经输入了搜索字符串):
- 当我点击 Next / Prev 按钮进行分页时,"sort" 值没有被表单发送
- 当我点击 $title1 / $title2 进行排序时,"page" 值没有被发送
根据我上面解释的代码,我想始终从表单发送 3 个不同的值:"search"、"sort" 和 "page"
我该如何确定?
请不要建议使用任何库或外部工具。目前我无法将任何内容包含到我的代码中。
另外,由于是第一次post上论坛,所以我不确定我的问题是否已经说清楚了。请告诉我,以便我进一步解释。
提前致谢。
我整天都在寻找解决方案,但没有得到满意的答案。因此在这里使用一个工作。我将 post 放在这里,以防对其他人有帮助:
唯一的修改是分页。我已将其从表单中删除并用作普通 link。缺点是当我进行排序时,页面值会被重置。因为它不影响我的项目。我倾向于使用这个解决方案。
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>)
我在 php 文件中有一个表格,如下所示(我在我的代码中将其设计为 Table,但此处仅显示表格,以便我可以解释我当前的问题) :
以下代码用于搜索
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>';
经过一些操作后,在排序(用作table headers)的代码中添加了以下内容,其中$title1和$ title2 与相应的 Button 值不同(因此使用
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>';
最后,在添加了更多功能之后,为 Pagination 添加了以下内容。 $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>';
现在我的问题是(假设我已经输入了搜索字符串):
- 当我点击 Next / Prev 按钮进行分页时,"sort" 值没有被表单发送
- 当我点击 $title1 / $title2 进行排序时,"page" 值没有被发送
根据我上面解释的代码,我想始终从表单发送 3 个不同的值:"search"、"sort" 和 "page" 我该如何确定?
请不要建议使用任何库或外部工具。目前我无法将任何内容包含到我的代码中。
另外,由于是第一次post上论坛,所以我不确定我的问题是否已经说清楚了。请告诉我,以便我进一步解释。
提前致谢。
我整天都在寻找解决方案,但没有得到满意的答案。因此在这里使用一个工作。我将 post 放在这里,以防对其他人有帮助:
唯一的修改是分页。我已将其从表单中删除并用作普通 link。缺点是当我进行排序时,页面值会被重置。因为它不影响我的项目。我倾向于使用这个解决方案。
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>)