评估复选框和通过URL传递变量

时间:2014-11-10 13:42:12

标签: forms url pagination

我需要一些关于我的申请的帮助。我开发此应用程序来管理小型库存。

广告资源中大约有1000个项目。这些物品会在一段时间内借给客户。

由于我不想在一个页面中显示1000个项目,因此我使用简单的php分页来显示每页50个项目。使用复选框,我的代码使用户能够检查特定项目并单击按钮来提交表单。此表单接收已检查项目的值,并将用户带到打印屏幕。在打印屏幕上,显示选中的项目。 简而言之,用户选择一些项目并提交表格。到目前为止没有问题发生。

现在的问题是,当用户选择不同页面上的项目时(例如,第1页上的项目编号5和第2页上的项目编号51),只有项目编号。 2提交到表格,并在打印屏幕上,只有项目号。显示2。

为了解决这个问题,我试图通过URL传递一个数组变量。

我试图通过链接(不是表单)传递数组变量,这样我就可以在提交表单之前将这个数组变量连接到checkbox变量。这样,如果表单将被提交,它将处理所有项目,它将显示打印屏幕上可能已在不同页面上检查过的所有项目。

我也试过使用AJAX分页,但它没有帮助。

这是我的代码,我想它很长,但我必须发布它,以解释我的问题。

非常感谢您的帮助。

提前致谢。我试图在网上找到解决方案。找不到相关的东西。

<div class="row">
<form action="confirm_checkout_items_multiple.php" method="POST">
<div class="col-lg-4 col-md-4 page-heading-adjust">
<?php
// this is for counting no. of pages
$queryCount = "SELECT * FROM inventory_table WHERE Checkedout!='1'";
<?php
$resultQueryCount = mysql_query($queryCount);
$rowCount = mysql_num_rows($resultQueryCount);
$pageCount = $rowCount/50;
$pageCount = ceil($pageCount);
$page = "";
$pagenum = "";
if(isset($_GET['page'])) {
  $pagenum = preg_replace('#[^0-9]#', '', $_GET['page']);
  $page = preg_replace('#[^0-9]#', '', $_GET['page']);
}
// This makes sure the page number isn't below 1, or more than our $last page
if ($pagenum < 1) { 
$pagenum = 1; 
} else if ($pagenum > $pageCount) { 
$pagenum = $pageCount; 
}
if($page=="" || $page=="1") {
  $pageone = 0;
}
 else {
  $pageone = ($page*50)-50;
}
?>
$query="SELECT * FROM inventory_table WHERE Checkedout!='1' LIMIT $pageone, 50";
<?php
$result=mysql_query($query);                           
// Establish the $paginationCtrls variable
$paginationCtrls = '';
$previous = $pagenum - 1;
$CF = 5;
if(isset($page) && $page>1) {
$paginationCtrls .= '<ul class="pagination"><li><a href="'.$_SERVER['PHP_SELF'].?page='.$previous.'&CF='.$CF.'">&laquo;</a></li>';
} else {
    $paginationCtrls .= '<ul class="pagination">';
}
// Render clickable number links that should appear on the right of the target page number
for($i = $pagenum+1; $i <= $pageCount; $i++){
    //for($a=)
    //$a = 51;
    //$b = 100;
    //for($a=51;)
    //$c = '('.$a.'-'.$b.')';
    $paginationCtrls .= '<li><a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'&CF='.$CF.'">'.$i.'</a>    </li>';
if($i >= $pagenum+24){
  break;
    }
}
// This does the same as above, only checking if we are on the last page, and then generating the "Next"
if ($pagenum != $pageCount) {
    $next = $pagenum + 1;
    $paginationCtrls .= '<li><a href="'.$_SERVER['PHP_SELF'].'?page='.$next.'&CF='.$CF.'">&raquo</a></li></ul> ';   
}
?>

总页数:

                </div>

                <div class="col-lg-3 col-md-3 text-center">
                    <button type="submit" name="checkout_temporary_multiple" class="btn btn-primary">Checkout selected Items</button>
                </div>
                <div class="col-lg-5 col-md-5 text-center page-heading-adjust">
                    <h3>Switch to: <a href="" class="btn btn-default disabled">Multiple Checkout</a> <a href="checkout_temporary_single.php" class="btn btn-default">Single Checkout</a></h3>
                </div>
            </div>

            <div class="row">
                <div class="col-lg-12 page-heading-adjust-2">
                    <?php echo $paginationCtrls; ?>
                </div>
            </div>

            <div class="row">
                <div class="col-lg-12">
                    <div class="table-responsive">
                        <table class="table table-bordered table-hover table-striped">
                            <thead>
                                <tr>
                                    <th class="nrml-heading">S. No.</th>
                                    <th class="nrml-heading">Code</th>
                                    <th class="nrml-heading">Description</th>
                                    <th class="nrml-heading">Colour</th>
                                    <th class="nrml-heading">Size</th>
                                    <th class="nrml-heading">Location</th>
                                    <th class="nrml-heading">Catalogue</th>
                                    <th class="nrml-heading text-center">Checkout</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php

                                while($row=mysql_fetch_array($result)) {
                                    $id = $row['id'];
                                    $Code = $row['Code'];
                                    $Description = $row['Description'];
                                    $Colour=$row['Colour'];
                                    $Size = $row['Size'];
                                    $Location=$row['Location'];
                                    $Catalogue=$row['Catalogue'];


                                ?>
                                <tr>
                                    <td><?php echo $id; ?></td>
                                    <td><?php echo $Code; ?></td>
                                    <td><?php echo $Description; ?></td>
                                    <td><?php echo $Colour; ?></td>
                                    <td><?php echo $Size; ?></td>
                                    <td><?php echo $Location; ?></td>
                                    <td><?php echo $Catalogue; ?></td>
                                    <td class="text-center"><input name="selector[]" type="checkbox" value="<?php echo $id; ?>"></td>
                                </tr>
                                <?php } ?>
                            </tbody>
                        </table>
                    </div>
                </div>
            </div>
            </form>

1 个答案:

答案 0 :(得分:0)

为什么不使用会话变量? 在页面的最开头,类似这样的

<?php session_start();?>
<?php
$getstring = $_SESSION['checkedItems'];
?>

每次用户移动到新页面

$_SESSION['checkedItems'] = 'url get string here';

然后将字符串转储到url的末尾,作为表单提交的get变量。

function itemchecked(){

//use an if block to see if the item clicked was checked or unchecked
// then change the getstring variable accordingly

$.ajax({
      type: "POST",
      url: "sessionUpdate.php",
      data: getstring,
      success: function(){
          // Do what you want to do when the session has been updated
      }
   });

};

在sessionUpdate php中,检索字符串并将其写入会话变量