2014-01-14 75 views
0

我試圖將表單數據保存到數組中,以便稍後將其顯示在表中。我遇到的問題是,當我單擊提交按鈕並使用php_self重新加載時,它似乎每次都初始化變量。這是我正在嘗試做的一個例子。嘗試將表單輸入存儲到數組中

<?php 

// if first time initialize variables 
if (!isset($i)) { 
    echo "in initialize section<br />"; 
    $i  = 0; 
    $itemno[] = ""; 
    $desc[] = ""; 
} 

if (isset($_POST['submitbtn'])) { 
    $itemno[$i] = $_POST['item']; 
    $desc[$i] = $_POST['desc']; 

    echo "Item# = " . $itemno[$i] . "<br />"; 
    echo "Desc. = " . $desc[$i] . "<br />"; 

    $i += 1; 
    echo "i = $i"; 
    var_dump($itemno); 
    var_dump($desc); 
} 

?> 

<form id="submititem" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"    name="submit" > 
<input name="item" placeholder="Enter item #" size="18" /> 
<input name="desc" placeholder="Enter Description" size="18" /> 
<input name="submitbtn" type="submit" value=">"> 
</form> 

感謝

拉爾夫

+0

那麼,什麼是你的問題?您想做什麼? –

+1

在每個http請求中你都有新的值。如果要存儲多個請求使用會話的所有發佈數據以保存所有數據 –

回答

0

您遇到的問題是,PHP開始 「新鮮」 與每一個頁面加載。如果您想要在多個提交中保留您的陣列,則需要將數據存儲在某處。會話或數據庫是這樣做的兩種最常見的方式。

這裏是你如何與會話做到這一點:

<?php 
session_start(); 
$items = isset($_SESSION['items']) ? $_SESSION['items'] : array(); 
$descriptions = isset($_SESSION['descriptions']) ? $_SESSION['descriptions'] : array(); 

// your logic here... 

$_SESSION['items'] = $items; 
$_SESSION['descriptions'] = $descriptions; 

需要注意的是,如果你的陣列是可能得到非常大的,或者如果你有很多用戶,你可能會想使用一個數據庫來存儲項目/描述信息。

0

你必須處理會話

$_SESSION['itemno'][$_SESSION['i']] = $_POST['item']; 
相關問題