PHP根据下拉选择设置值

时间:2015-06-27 15:19:34

标签: php

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

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

实现这一目标的最佳方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

上面某处需要(你很可能有这个):

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
}
  

注意:您必须在将任何文本输出到浏览器之前放置代码,   或重定向无效。这意味着把它放在前面   打印<!DOCTYPE>

您可以通过在某处打印出会话数组来验证它的工作原理:

print_r($_SESSION);