2013-07-17 2 views
0

Так вот код на первой странице:Возникли проблемы передачи переменных между страницами через PHP

<?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-wise.

Когда я пытаюсь передать его на вторую страницу, я получаю значение 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

+0

Вы не проходите формуПоказать в вашей форме, поэтому $ _POST ['formSubmit'] всегда имеет значение null –

ответ

0

Вам нужно назовите свою кнопку отправки на 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> 
0

Просто измените первый, если:

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

В альтернативной, если вы предпочитаете, вы можете добавить скрытый вход в форму и оставить если есть.

<input type="hidden" name="formSubmit" value="Submit" /> 
Смежные вопросы