Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用表单的PHP分页库--如何跨页面保留数据?jQuery是唯一的方法吗?_Php_Jquery_Forms - Fatal编程技术网

使用表单的PHP分页库--如何跨页面保留数据?jQuery是唯一的方法吗?

使用表单的PHP分页库--如何跨页面保留数据?jQuery是唯一的方法吗?,php,jquery,forms,Php,Jquery,Forms,画一个5页的图片库,每页大约有20幅图片。每个图像都与两个复选框关联,即web分辨率和打印分辨率,以便客户订购图像的数字副本 该页面是用PHP构建的。当客户在所有5个页面上选择完图像后,她单击提交订单并进入确认页面,该页面将显示所选图像的缩略图,并询问订单和预算信息 保留跨页面选择的图像的最简单方法是什么?当这是一个只有一页的图库时,我使用的代码非常有效: echo "<ul class=\"req-box nolist\"> <li>"; if (is

画一个5页的图片库,每页大约有20幅图片。每个图像都与两个复选框关联,即web分辨率和打印分辨率,以便客户订购图像的数字副本

该页面是用PHP构建的。当客户在所有5个页面上选择完图像后,她单击提交订单并进入确认页面,该页面将显示所选图像的缩略图,并询问订单和预算信息

保留跨页面选择的图像的最简单方法是什么?当这是一个只有一页的图库时,我使用的代码非常有效:

echo "<ul class=\"req-box nolist\">
    <li>";

    if (isset($_POST['photo-select']) && in_array($photoid . "-print", $_POST['photo-select'])) {
        echo "<input type=\"checkbox\" checked=\"checked\" name=\"photo-select[]\" id=\"{$photoid}-print\" value=\"{$photoid}-print\" />\n";
    } else {
        echo "<input type=\"checkbox\" name=\"photo-select[]\" id=\"{$photoid}-print\" value=\"{$photoid}-print\" />\n";
    }

    echo "<label for=\"{$photoid}-print\">print use</label></li>\n
    <li>";

    if (isset($_POST['photo-select']) && in_array($photoid . "-web", $_POST['photo-select'])) {
        echo "<input type=\"checkbox\" checked=\"checked\" name=\"photo-select[]\" id=\"{$photoid}-web\" value=\"{$photoid}-web\" />\n";
    } else {
        echo "<input type=\"checkbox\" name=\"photo-select[]\" id=\"{$photoid}-web\" value=\"{$photoid}-web\" />\n";
    }

    echo "<label for=\"{$photoid}-web\">web use</label></li>\n

</ul>\n";
但现在这显然行不通,因为指向页面的链接是锚,不会发布到$u post数组。我认为这可以使用jQueryAjax POST事件来完成,但我不能100%确定,也不确定这是否是最好的方法。如果有人禁用了JS,那么表单就不会工作了,对吗


如果这是唯一的办法,那很好,但我需要你的建议。谢谢

Ajax请求可能是您的最佳选择

使用jQuery,当他们单击转到另一个页面时,您可以触发AJAX事件以在会话中存储数据。或者,您可以在他们每次单击复选框时执行此操作,但这可能需要几个到多个请求


如果您担心禁用Javascript,那么可以让页面链接默认指向ajax脚本。然后,在进行Ajax调用时,传递一个变量,如“Ajax=1”,然后,如果Ajax变量为false,则自动将用户重定向到下一页。这样,这样,启用JavaScript的人将获得AJAX请求,而不启用JavaScript的人将转到脚本,然后快速重定向。然后,在完成订单时,只需更改流程订单代码以检查$\u会话而不是$\u POST。

您不必使用AJAX

使上一个和下一个按钮成为按钮(如果还没有)。通过这种方式,您可以在前四页上更改表单方法以获得。在最后一页上,使用POST转到另一页。尽管由于您实际上并没有在服务器上更改任何内容,您可能还是希望继续使用GET

“上一页”和“下一页”按钮是表单按钮,您的选择将在url中传递

第1页可能有选项1-20,用户选择了3和5。单击“下一步”将转到url:

http://original/url/?sel[]=3&sel[]=5&page=2
第2页有选择21-40,用户选择27和32。现在,下一步按钮转到url:

http://original/url/?sel[]=3&sel[]=5&sel[]=27&sel[]=32&page=3
等等

如果您通常有用户选择所有100个图像,那么您的URL可能会有点长,但正如前面提到的,您可以使用会话来实现这一点。不过,会话不需要ajax

关键:
sel=照片选择

Genius。有一件事:当您说默认指向ajax脚本时,我认为您指的是Javascript文件。但是如果他们禁用了Javascript,这不是仍然会是一个问题吗?对不起,我应该更清楚。对于AJAX脚本,我指的是JavaScript使用AJAX调用的php文件。所以,如果他们禁用了JavaScript,应该不会有问题。哦,好的。我想我还是有点困惑,因为如果链接指向PHP脚本,它不会发布表单变量,这首先是整个问题,我相信GSto说的是,如果你使用JavaScript来更改链接的默认行为,那么你可以使用href属性来传递变量,因此如果用户没有启用JavaScript,他们会跟随链接,你设置一个$\u会话变量并重定向回原始页面,如果他们启用了JavaScript,您只需设置适当的var并在翻页时使用AJAX发送即可。如果不以某种方式使用JavaScript,通过单击链接提交表单数据是不可能的。但是,你必须使用链接在页面之间导航吗?你可以用提交按钮来代替吗?那么你就不需要Javascript了。我认为这将是一条路要走。我讨厌在链接不那么显眼的时候通过CSS改变每个提交按钮的样式,但是为了避免AJAX,这是值得的。谢谢