2016-11-04 58 views
0

我正在使用數據庫和PHP製作假工具租賃程序。此代碼從數據庫獲取信息,將其存儲在名爲$records的變量中,然後創建一個包含該信息的表。我正在嘗試將的tool_id列的值存儲爲複選框的值,並將所選值傳遞給數組以創建購物車,但數組始終爲空。PHP不存儲所選複選框輸入的值

function drawTable($records) { 
    $count = 0; 
    $info = getToolInfo($records); 

    echo "<table style='text-align:center;margin:0 auto;border:1px solid black'>"; 
    echo "<tr style='border:1px solid black'>"; 
    echo "<td style='border:1px solid black'>Add to cart</td>"; 
    echo "<td style='border:1px solid black'>Tool Name</td>"; 
    echo "<td style='border:1px solid black'>Price</td>"; 
    echo "<td style='border:1px solid black'>Availability</td>"; 
    echo "<td style='border:1px solid black'>More info</td>"; 
    echo "</tr>"; 

    foreach ($records as $record) { 
     echo "<tr stlye='border:1px solid black'>"; 
     echo "<td style='border:1px solid black'><input type='checkbox' name='cart[]' value=".$record['tool_id']."></td>"; 
     echo "<td style='border:1px solid black'>".$record['name']."</td>"; 
     echo "<td style='border:1px solid black'>$".$record['price_total']."</td>"; 
     echo "<td style='border:1px solid black'>".$record['status']."</td>"; 
     echo "<td style='border:1px solid black'><button tpye='button' onclick='var info=".json_encode($info[$count]).";displayPopup(info);'>More Info</button></td>"; 
     echo "</tr>"; 

     $count++; 
    } 

    echo "</table>"; 
} 

此代碼是我嘗試訪問另一個名爲cart.php的文件中的數組,但數組始終爲空。

session_start(); 

if (!isset($_SESSION['cart'])) { 
    $_SESSION['cart'] = array(); 
} 

$cart = $_GET['cart']; 

foreach ($cart as $tool) { 
    $_SESSION['cart'][] = $tool; 
    echo $tool . "<br/>"; 
} 
+0

爲什麼你不使用窗體? – RxV

+0

我試過把它放在

但它仍然沒有工作。 –

+0

您是否嘗試提交表單並在會話中存儲值? – RxV

回答

0

如果購物車複選框字段不爲空,請使用表單,將方法添加爲「POST」,並將操作添加爲cart.php。提交表單後,通過cart.php中的POST ['cart']獲取表單字段。

1

窗體工作。試試下面的代碼,表格被包裝在表單中,購物車數據將在提交時發送到cart.php。

echo "<form method='get' action='cart.php'><table style='text-align:center;margin:0 auto;border:1px solid black'>"; 
echo "<tr style='border:1px solid black'>"; 
    echo "<td style='border:1px solid black'>Add to cart</td>"; 
    echo "<td style='border:1px solid black'>Tool Name</td>"; 
    echo "<td style='border:1px solid black'>Price</td>"; 
    echo "<td style='border:1px solid black'>Availability</td>"; 
    echo "<td style='border:1px solid black'>More info</td>"; 
echo "</tr>"; 
foreach($records as $record){ 
    echo "<tr style='border:1px solid black'>"; 

     echo "<td style='border:1px solid black'><input type='checkbox' name='cart[]' value=".$record['tool_id']."></td>"; 
     echo "<td style='border:1px solid black'>".$record['name']."</td>"; 
     echo "<td style='border:1px solid black'>$".$record['price_total']."</td>"; 
     echo "<td style='border:1px solid black'>".$record['status']."</td>"; 
     echo "<td style='border:1px solid black'><button tpye='button' onclick='var info=".json_encode($info[$count]).";displayPopup(info);'>More Info</button></td>"; 

    echo "</tr>"; 
    $count++; 
} 
echo "<tr><td><input type='submit' value='Got to cart'></td></tr></table></form>"; 
+0

感謝這工作。對於任何人在未來看到這個問題,我的問題是我每次做了一個複選框而不是將它們全部放在一個表單中時,我就做了一個表單。 –