【问题标题】:Having trouble passing variables between pages through php无法通过 php 在页面之间传递变量
【发布时间】:2013-07-16 07:50:55
【问题描述】:

所以这是第一页上的代码:

<?php
    $db = mysql_connect(
  ':/Applications/MAMP/tmp/mysql/mysql.sock',
  'root',
  'root'
);
        if(!$db) die("Error connecting to MySQL database.");
        mysql_select_db('onlineform', $db);
$newQuery1 = mysql_query("SELECT newCampSessions FROM onlineformdata ORDER BY id DESC LIMIT 1") or die('Error ' . mysql_error());
$newFoo = mysql_fetch_array($newQuery1);
        $newQuery2 = mysql_query("SELECT pricePerWeek FROM onlineformdata ORDER BY id DESC LIMIT 1") or die('Error ' . mysql_error());
$newFoo1 = mysql_fetch_array($newQuery2);
$newOldString = $newFoo['newCampSessions'];
$newOldString2 = $newFoo1['pricePerWeek'];
$newChangedString = unserialize($newOldString);
$newChangedString2 = unserialize($newOldString2);
sql_close();
?>
<html>
<head> (all the tags in here) </head>
<body>
<form id="paymentform" action="amd8.php" method="post">
 <input type="hidden" name="pricePerWeek" value="<?php echo $newChangedString2 ?>"/>
 <input type="hidden" name="specificWeek" value="<?php echo $newChangedString ?>"/>

</form>
</body>
</html>

第一页还有更多内容,但我只是提供了相关的代码。一切都在第一页上以 php 方式运行。

当我尝试将其传递到第二页时,我得到的那些特定数组的值为 NULL。

amd8.php:

<?php

if ($_POST['formSubmit'] == "Submit")
{
    $newString = $_POST['pricePerWeek'];
    $newString2 = $_POST['specificWeek'];
}


$db = mysql_connect(
  ':/Applications/MAMP/tmp/mysql/mysql.sock',
  'root',
  'root'
);
        if(!$db) die("Error connecting to MySQL database.");
        mysql_select_db('onlineform', $db);

    $newQuery = mysql_query("SELECT newPrice,numberOfWeeks FROM onlineformdata ORDER BY id DESC LIMIT 1");
$newRow = mysql_fetch_row($newQuery);
$limit = $newRow[1];

    $totalPrice = 0;

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

            for ($count == 0; $count < $limit; $count=$count+1)
        {

                foreach ($_SESSION['campsessions'] as $campsessions)
                {
            if ($campsessions == ($newString[$count]))
            {
                $totalPrice = $totalPrice + $newString2[$count];
            }
                } 
        }   
    }

?>

<html>
<head>(header info)</head>
<body>
<p>
<?php echo gettype($newString2);
      echo gettype($newString);
 ?>
</p>
</body>
</html>

如您所见,gettypes() 我试图回应的是那些给我一个 NULL 值的人

【问题讨论】:

  • 您没有在表单中传递 formSubmit,因此 $_POST['formSubmit'] 始终为空

标签: php sql for-loop foreach hidden-field


【解决方案1】:

您需要将提交按钮命名为 formSubmit 以使 if 语句返回 true。像这样更改您的表单,它应该可以工作:

<form id="paymentform" action="amd8.php" method="post">
    <input type="hidden" name="pricePerWeek" value="<?php echo $newChangedString2 ?>"/>
    <input type="hidden" name="specificWeek" value="<?php echo $newChangedString ?>"/>
    <input type="submit" value="Submit" name="formSubmit">
</form>

【讨论】:

    【解决方案2】:

    只需将第一个 if 更改为:

    if ($_POST['pricePerWeek'] || $_POST['specificWeek'])
    

    或者,如果您愿意,可以在表单中添加隐藏输入,并保持 if 不变。

    <input type="hidden" name="formSubmit" value="Submit" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2019-04-13
      相关资源
      最近更新 更多