PHP根据下拉选择设置值


PHP Set value based on dropdown selection

我有一个下拉列表,列出了为客户保存的所有地址。根据客户选择的地址,我必须在会话中设置交货地址。

这是我选择后想要的结果:$_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);