我有一个下拉列表,列出了为客户保存的所有地址。根据客户选择的地址,我必须在会话中设置交货地址。
这是我选择后想要的结果:$_SESSION['order']['delivery']['address'] = $choice['id']
$choice['id']
是我从数组中检索到的值,与传递地址的ID相对应。
我的$address
值来自:$address = $db->get_delivery_addresses_by_user_id($_SESSION['js_user_id']);
我的下拉代码是:
<label class="required" for="delivery_address">Please select Address</label>
<div class="select-holder">
<form name="select-address-form" method="POST" action="">
<select name="delivery_address" id="delivery_address">
<option value="">Select Address</option>
<?php
foreach($address as $id => $choice) {
echo "<option value=" . $choice['id'] . ">" . $choice['address_name'] . "</option>";
} ?>
</select>
<button type="submit" name="action" value="set address">
</form>
</div>
实现这一目标的最佳方式是什么?
谢谢。
上面的某个地方需要(您很可能有这个):
session_start();
然后对POST
:上的数据进行处理
if (isset($_POST['delivery_address'])){
$_SESSION['order']['delivery']['address'] = $_POST['delivery_address'];
session_write_close();
header("Location:" . $_SERVER['REQUEST_URI']); //refresh page
exit; //ensure no more code execution
}
注意:必须在将任何文本输出到浏览器之前放置代码,否则重定向将不起作用。这意味着把它放在前面打印CCD_ 6。
您可以通过在某个地方打印出会话数组来验证它的工作原理:
print_r($_SESSION);