使用$ _SESSION自动递增表单输入名称

时间:2013-11-30 03:55:01

标签: php jquery forms session

我想使用PHP $_SESSION来访问用户表单输入的数据。流程如下:

第1步 用户填写表格。

<form method="post" action="review.php">
<input type="text" name="length">
<input type="text" name="width">
<input typ="text" name="quantity">
<input type="submit" value="submit">
</form>

第2步 表单数据已提交,“review.php”会从POST转换为SESSION。用户评论表单详细信息并将项目添加到购物车。

第3步 物品已添加到PayPal购物车。用户决定添加另一个项目,以便用户点击“继续购物”并返回到步骤1。

第1步 用户填写表单详细信息。除此之外,我希望input名称自动增加。 例如:

<input type="text" name="length2">
<input type="text" name="width2">
<input type="text" name="quantity2">

我想让它自动递增,但用户将新商品添加到购物车的次数很多次。

<input type="text" name="length3">
<input type="text" name="length4">
<input type="text" name="etc">

常用流量继续... 步骤2 ---&gt;第3步

第3步中成功付款后,用户将被重定向到新页面。

第4步(newPage)

所有购买商品的详细信息将按顺序显示在此页面上,并显示在同一组中。例如,(长度,宽度,数量)则(长度2,宽度2,数量2)等等。它们将以不同的形式显示。

这些表单还将包含<input type="file">,以便用户可以为每个表单上传文件。每个表单代表一个购买的项目。

一旦用户将文件上传到每个相应的表单,他们就会被提交到数据库。

问题

  1. 如何使用PHP优先使input名称自动增加, 当然在使用$_SESSION时?我想name来 在用户会话后返回其原始名称。所以我们说吧 同一个用户想要第二天订购,他订购了5件商品, 输入名称将跨越5(长度,长度2,...,长度5)。

  2. 如何在各自显示所有用户输入的数据 表格(见第4步)?

  3. 我知道我必须在PHP($ _ SESSION,表格等)上做所有后端工作但是如果有人有自动增量的jQuery解决方案并且最后显示所有数据我都是为了它。

    以下是我正在使用的内容

    试图使用它来显示具有递增名称的数据,但无法找到解决方案。

    <?php
    session_start();
    ?>
    
    <form>
    <?php 
    $size = $_SESSION['size'];
    $variables = array("$size");
    $i = 1;
    
     foreach ($variables as $var ) {
     $name = "txt".$i;
     echo "<input type='text' name='".$name."' value='".$var."' />";
     $i++;
    } 
    
    
    ?>
    
    
    </form>
    

    有些人可能会提出PayPal IPN。我也创建了一个IPN监听器,但它不会通过沙箱调用。这里的用户发布了他的IPN监听器不能在沙箱上工作,但是当他通过paypal.com上线时它确实有效。可能也是我的情况,但我想继续开始销售,所以我需要一个不同的方法。即使我的IPN听众通过paypal.com工作,我也不能冒险使用它而不是100%肯定。所以,如果我现在可以使用这种方法,直到我确认我的听众工作,我就会这样做。

    一如既往,我非常感谢你们的帮助。

1 个答案:

答案 0 :(得分:0)

我实际上已经想了一会儿。这是我正在使用的代码:

    <?php

if(isset($_POST['submit'])){

$_SESSION['invoice'] = $_POST['invoice'];
$invoice_no = $_SESSION['invoice'];

 $decal = array(
    'length' => $_POST['os0'],
    'width' => $_POST['os1'],
    'color' => $_POST['os2'],
    'quantity' => $_POST['os3'],
    'price' => $_POST['price'],
    'submit' => $_POST['submit']
);

$_SESSION['order'][] = $decal;
$i = 0;
}


if(isset($_SESSION['order'])){ 

foreach($_SESSION['order'] as $sav) {
$i++;
?>

    <input type="hidden" name="on0_<?php echo $i; ?>" value="Length">
    <div class="decalName">
    <label>Custom Decal <?php echo $i; ?></label>
    </div>
<div class="label-input">
<label>Length</label><input type="text" name="os0_<?php echo $i; ?>" id="length" size="2" class="num" value="<?php echo $sav['length']; ?>" readonly>
</div>
    <input type="hidden" name="on1_<?php echo $i; ?>" value="Width">
<div class="label-input"><label>Width</label><input type="text" name="os1_<?php echo $i; ?>" id="width" size="2" class="num" value="<?php echo $sav['width']; ?>" readonly>
</div>
      <input type="hidden" name="on2_<?php echo $i; ?>" value="Color">
<div class="label-input">
<label>Color</label><input type="text" name="os2_<?php echo $i; ?>" value="<?php echo  $sav['color']; ?>" readonly>
</div>
<div class="label-input">
<label>Quantity</label><input type="text" name="os3_<?php echo $i; ?>" size="2"   class="num" id="quantity" value="<?php echo $sav['quantity']; ?>" readonly>
</div>
    <input type="hidden" name="on3_<?php echo $i; ?>" value="quantity">
<input type="hidden" class="num" value="0.20">

<div class="label-input">
<label>Price $:</label><input type="text" class="tot" name="price" value="<?php echo $sav['price']; ?>" readonly>
</div><!--end label-input-->

<?php
 }
?>