【问题标题】:Undefined index in php?php中未定义的索引?
【发布时间】:2014-12-17 10:24:22
【问题描述】:

我试图从我创建的另一个页面中的文本框中获取值,并且文本框自动设置为 0,但它一直告诉我索引未定义?但是一旦您单击确认按钮,值就会被提交,但我希望它自动设置为 0 而无需单击按钮。

这是第 1 页:

    <?php
 if(isset($_POST['topscart']))
 {
 $_SESSION['topscart']=$_POST['topscart'];
 print"<script language=javascript>
window.location='ACCOUNT.php';
</script>";
 }
 ?>

这是第 2 页:

<td>No. of Female Tops Ordered: </td>
<td><center><?php 
print" ".$_SESSION['topscart'];
?>
</td>

第 1 页的文本框代码:

No. of Female Tops in Your Cart: <input type="text" value="0" size="10" name="topscart" id="topscart" >
Total: <input text="text"  size="10" value="0" name="topstotal" id="topstotal" >
<input type ="submit" value="Confirm Order"></button>
<input type ="reset"  id="topsbutton2" name="topsbutton2" value="Cancel Order"></button>
</center>

【问题讨论】:

  • 在第 2 页你有 session_start(); 吗?在第 1 页你有 session_start(); 吗?
  • 是的,我在顶部都有这两个。
  • 您可能有其他导致麻烦的代码。就像会话销毁或会话取消设置
  • “文本框”是指“复选框”吗?
  • 请提供有关表单以及如何发送数据的更多信息

标签: php session post


【解决方案1】:

我不太明白其用途,但您必须单击按钮来填充 $_POST 变量。

如果必须,将值设置为 0 并自动在 $_POST 中获取它,然后您还需要使用 JS - 在页面加载时用 0 填充“topscart”,并使用按钮的 .click()。

希望对你有帮助

【讨论】:

    【解决方案2】:
    <?php
      if(isset($_POST['topscart']))
     {
    
     session_start();
     $_SESSION["topscart"] = $_POST['topscart'];
      print"<script language=javascript>
      window.location='ACCOUNT.php';
     </script>";
    
     }
     ?>
    

    第二页

    <?php
      session_start();
     echo $_SESSION["topscart"];
    

    ?>

    【讨论】:

      【解决方案3】:

      我认为您想将会话值默认为 0,除非它是由初始表单设置的?如果是这种情况,请将第 1 页上的代码更新为:

      <?php
      if(isset($_POST['topscart']))
      {
        $_SESSION['topscart']=$_POST['topscart'];
        print"<script language=javascript>
        window.location='ACCOUNT.php';
        </script>";
      } else {
        $_SESSION['topscart'] = 0;
      }
      

      【讨论】:

      • 这个可行,但是你需要先访问页面将表中的值设置为0。有没有其他方法可以将表中的值设置为0而不实际进入页面?
      • 我的意思是页面不是转到第 1 页,而是直接转到第 2 页。
      • &lt;?php if (!isset($_SESSION['topscart'])) $_SESSION['topscart'] = 0; ?&gt; 添加到第 2 页,如果尚未设置会话变量,则将其设置为 0
      • 我在第 1 页继续输入的值不会显示在第 2 页中
      • 在第 1 页上 print"&lt;script language=javascript&gt; 之前尝试添加 var_dump($_SESSION);exit(); 以便您可以查看是否在重定向之前设置了会话变量。
      猜你喜欢
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 2021-02-09
      • 2015-03-24
      相关资源
      最近更新 更多