提问者:小点点

如何在php中检查下拉列表何时被选中/更改,或者如何保留选中的新值


我对此很陌生,希望你们能帮助我。

我正在用PHP做一个电子商务网站。 我有一个下拉列表的所有国家和每次选择的国家,将提交一个表单,以获得航运金额。 当顾客以客人身份结账时一切都很好。 当客户登录时,送货地址将自动填入客户最后一次购买的详细信息。 然而,当签到的客户想要为送货地址选择另一个国家/地区时,页面会继续加载与上次购买相同的地址。 我想检查一下我如何才能将客户选择的新国家保留在下拉列表上?

这是我的下拉列表的html代码

null

<select class="span6" name="country" id="shipping_country">
         <option value="">--Select Country--</option>
         <?php
            foreach ($countries as $country){
              $selected = "";
              if ($shipping_country == $country["country"]){
                  $selected = "selected";
              }
            print("<option value='".$country["country"]."' ".$selected." >".$country["country"]."</option>");
            }
        ?>
</select>

null

这是我的php代码:

if ($this->input->cookie('affiliate_id')){
        $data["affiliate_login"] = "hide";
        $result = $this->affiliate_model->get_affiliate_detail($this->input->cookie('affiliate_id'));
        $data["affiliate_data"] = $result;
        // Use the info from last purchase.
        $result = $this->affiliate_model->last_buy_record($this->input->cookie('affiliate_id'));
        if ($result){
            $data["affiliate_shipping_data"] = $result;
            $country = $result["shippingCountry"];
            $data["shipping_country"] = $country;
        }

上面的php代码使我能够获得上次购买的详细信息,并在下拉列表上自动选择国家。

我要添加的新代码,以获得新选择的国家,如下所示:

$country = $this->session->userdata("shipping_country");
            $data["shipping_country"] = $country;

但是,我想添加一个“如果条件”来检查下拉列表何时被选中或更改。 我能查一下吗? 或者其他方法来保持这个国家被选中? 谢谢你的建议


共1个答案

匿名用户

我希望下面的代码可以帮助您。

$country = $data["shipping_country"] || $this->session->userdata("shipping_country");

这应该给你一个选定的国家(如果用户选择了一些),否则得到的人口国家。 也许我会考虑三元条件。 当心未注册的用户,他们还没有选择任何国家。