【问题标题】:Setting select options value/id in angularjs to work with ajax/php insert在 angularjs 中设置选择选项值/id 以使用 ajax/php 插入
【发布时间】:2015-02-04 18:33:49
【问题描述】:

我正在显示这样的下拉选择

<select name="ch" id="ch" ng-model="selected" ng-options="option.title for option in options" class="form-control3"></select>

这会显示在我的控制器中声明的一组选项,如下所示:

 $scope.options = [
        {
            title: 'P4',
            value: 'P4',
            id: 'ch',
            urlPrefix: 'http://test1.com/'
        }, {
            title: 'X1',
            value: 'x1',
            id: 'ch',
            urlPrefix: 'http://test2.com/'
        }];
            $scope.selected = $scope.options[1];

现在,在切换到此功能之前插入我的数据库时,它工作正常(在它是一个带有 id 的选择,然后是带有 value="" 的选项之前)并且该值将被插入到数据库中。现在它没有插入值,而是根据 p4 或选择的 x1 得到 0 或 1。我尝试添加 name: 'ch', id: 'ch', value: 'ch' 但它仍然将 p4 的 0 和 x1 的 1 插入数据库。 所以我的问题是我将如何从每个 ngs 下拉选项中选择可以由我的 php 脚本检索的值,如下所示:

$ch = $_POST['ch'];

【问题讨论】:

    标签: javascript php html angularjs


    【解决方案1】:

    诀窍在于选项上设置的value 属性。

    它工作得很好(之前是带有 id 的选择,然后是带有 value="" 的选项)

    浏览器会发送文本值,如果没有设置值属性,但如果设置了适当的值属性,它会提交值。

    例如

    <select name="foo">
      <option></option>
      <option>Apple</option>
      <option value="">Kiwi</option>
      <option value="75">Pear</option>
    </select>
    

    如果用户选择“Apple”或“Kiwi”,您将在 URL 上看到...foo=Applefoo=Kiwi,但如果他们选择“Pear”,您将获得 foo=75(值属性)

    为了最好地控制你得到的东西,我一定要为每个选项设置你想要的值属性。

    【讨论】:

    • 我让它像你提到的那样工作,但我需要像我的第一个示例一样显示选项,它们是从我的控制器中检索的,但该选项仅继承 title: 和 urlPrefix: 从控制器选项,感谢您的帮助
    【解决方案2】:

    我从使用 ng-options / select 切换到 ng-repeat / option,这给了我正在寻找的结果(插入数据库工作正常)

    【讨论】:

      【解决方案3】:

      使用这种类型的 ng-options 它将根据索引生成选项。要解决此问题并将值正确发送到服务器,您需要使用隐藏元素。这是代码

      <input type="hidden" name="ch" value="{{selected}}" />
      <select id="ch" ng-model="selected" ng-options="option.title for option in options" class="form-control3"></select>
      

      现在它将向服务器发送正确的值。有关不同类型的 ng-options 检查的更多信息 https://github.com/farazshuja/ng-options/blob/master/README.md

      【讨论】:

        猜你喜欢
        • 2017-11-19
        • 2021-11-30
        • 2018-08-23
        • 1970-01-01
        • 1970-01-01
        • 2016-01-21
        • 2017-12-31
        • 1970-01-01
        • 2016-08-20
        相关资源
        最近更新 更多