注意:未定义的索引:txtQuant - 使用SESSIONS未定义PHP文本框

时间:2017-08-20 05:37:00

标签: php session-variables

  

注意:未定义的索引:第8行的E:\ wamp \ www \ ShoppingCartV4 \ cartv4.php中的txtQuant

     

注意:未定义的索引:第56行的E:\ wamp \ www \ ShoppingCartV4 \ cartv4.php中的txtQuant

我的更新代码:

 if(isset($_GET["update"]))
    {
    $i = $_GET["update"];


    $_SESSION["Qnty"] = $_GET["txtQuant"];
    $_SESSION["amounts"][$i] = $_SESSION["Qnty"][$i];

    }

我的HTML代码

<?php
       if(!empty($_SESSION["products"])){
          for ($i=0; $i< count($_SESSION["products"]); $i++) {
           ?>
           <tr>
           <td><?php echo($_SESSION["products"][$i]); ?></td>
           <td width="10px">&nbsp;</td>
           <td><input type="text" name="txtQuant[]"></td>
           <td width="10px">&nbsp;</td>
           <td><?php echo($_SESSION["amounts"][$i]); ?></td>
           <td width="10px">&nbsp;</td>


           <td><a href="?update=<?php echo($i); ?>">Update</a></td>

           </tr>
           <?php
         }
       }
         ?>

我该如何解决这个问题?谢谢

1 个答案:

答案 0 :(得分:0)

您是否将该表单包装在表单标记中?你应该用标签包装html代码。否则,没有实际提交的表单,$ _GET数组中唯一的内容将是更新。

session_start()只是初始化会话,我看到的代码中没有任何东西将txtQuant添加到会话中。如果你正在做的是,有人点击“更新”链接并提交你的“我的更新代码”片段,那么它将无效。您需要以表格形式将表格包裹在底部:

<?php
       if(!empty($_SESSION["products"])){
?> 
<form>
<?php
          for ($i=0; $i< count($_SESSION["products"]); $i++) {
           ?>
           <tr>
           <td><?php echo($_SESSION["products"][$i]); ?></td>
           <td width="10px">&nbsp;</td>
           <td><input type="text" name="txtQuant[]"></td>
           <td width="10px">&nbsp;</td>
           <td><?php echo($_SESSION["amounts"][$i]); ?></td>
           <td width="10px">&nbsp;</td>

           <td><input type="submit" value="Update"></td>
           <td><input type="hidden" name="update" value="<?php echo($i); ?>" /></td>
           </tr>
           <?php
         }
         ?>
</form>
       <?php
       }
         ?>