代码之家  ›  专栏  ›  技术社区  ›  rhodesjason

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

  •  1
  • rhodesjason  · 技术社区  · 16 年前

    该页面是用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";
    

    <a> 锚点,不会发布到$_post数组。我认为这可以使用jQuery AJAX POST事件来完成,但我不是100%确定,也不确定这是否是最好的方法。如果有人禁用了JS,表单根本无法工作,对吧?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Brandon Henry    16 年前

    你不必使用AJAX。

    将上一个和下一个按钮设置为按钮(如果还没有)。这样做,您可以将前四页上的表单方法更改为GET。在最后一页上使用POST转到另一页。(尽管由于您实际上并没有更改服务器上的任何内容,因此您可能无论如何都要坚持使用GET)

    http://original/url/?sel[]=3&sel[]=5&page=2
    

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

    等等。

    = 照片选择

        2
  •  1
  •   GSto    16 年前

    Ajax请求可能是您最好的选择。

    使用jQuery,当他们点击转到另一个页面时,您可以触发一个AJAX事件将数据存储在会话中。或者,你可以每次他们点击复选框时都这样做,但这可能是几个到多个请求。