【问题标题】:Get key from select value on PHP array with jQuery使用 jQuery 从 PHP 数组的选择值中获取键
【发布时间】:2014-12-08 12:04:18
【问题描述】:

我什至不确定这是否可能,因为我找不到任何可以帮助我解决这个问题的东西,所以我想我会问。

我有一个带有用户注册插件的 wordpress 站点,该插件有一个带有数组的选择下拉状态字段:

$array = array(
 'AL' => 'Alabama',
 'AK' => 'Alaska',
 'AZ' => 'Arizona',
 'AR' => 'Arkansas');

我正在尝试将此字段与 woocommerce 的 billing_state 字段同步,据我所知,该字段使用缩写而不是全名(Al,而不是 Alabama)。

我想我会使用下拉字段来获取所选状态并使用 value 属性将其传递给 billing_state 字段,但这会传递全名,有没有办法取而代之检索密钥并传递它输入字段的值?

任何帮助将不胜感激!

【问题讨论】:

    标签: php jquery wordpress woocommerce


    【解决方案1】:

    您可以使用 jQuery .val() API 获取下拉键。

    例如如果您的下拉 ID 是 states:

    var state = $("#state").val();
    

    【讨论】:

    • 这就是我所拥有的,但我仍然得到全名而不是密钥,我不知道为什么。
    • 在此处粘贴下拉 HTML 源代码。\
    • <select name="state_dropdown" id="state_dropdown" data-placeholder="Please Select"><option value="Alabama">Alabama</option><option value="Alaska">Alaska</option><option value="Arizona">Arizona</option></select> 好的,所以我清楚地看到了问题,即使下拉列表是通过 php 数组填充的,这些值也是完整的状态名称。我想我必须改写我原来的问题。有没有办法在选择选项中的某处包含键?
    • 好了,选项值是州名,应该是州代码。
    • 谢谢,看来我得看一下注册插件中的代码,从内置数组中找出选项的添加位置并更改它。
    【解决方案2】:

    如果你的选择框是这样的

    <select class='states' name='states'>
        <option value='AL'>Alabama</option>
        <option value='AK'>Alaska</option>
        <option value='AZ'>Arizona</option>
        <option value='AR'>Arkansas</option>
    </select>
    

    有很多方法可以获得所选值,我只列出了几个

    1. $("select.states").val();
    2. $("select.states option:selected").val();
    

    我假设您可能需要更改时的更新值,所以像这样

    $("select.states").on('change',function(){
        var state_abbreviations = $(this).val();
    });
    

    以上检测用户变化并每次传递数据,以便您更新您的必填字段。

    希望这有帮助。

    编辑:如果您在选项中的值被互换,那么您将需要使用类似

    $("select.states").on('change',function(){
            var state_abbreviations = $(this).text();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多